Hintergrund
Ich bin Prototyp einer Konvertierung von unserer RDBMS-Datenbank in MongoDB. Während der Denormalisierung habe ich anscheinend zwei Möglichkeiten: eine, die zu vielen (Millionen) kleineren Dokumenten führt, oder eine, die zu weniger (Hunderttausenden) großen Dokumenten führt.
Wenn ich es auf ein einfaches Analog reduzieren könnte, wäre es der Unterschied zwischen einer Sammlung mit weniger Kundendokumenten wie diesem (in Java):
Klasse Kunde { privater Stringname; private Adresse Adresse; // Jede CreditCard verfügt über Hunderte von Zahlungsinstanzen private Set <CreditCard> creditCards; }}
oder eine Sammlung mit vielen, vielen Zahlungsdokumenten wie diesen:
Klasse Zahlung { Privatkunde Kunde; private CreditCard creditCard; privates Datum payDate; private float payAmount; }}
Frage
Ist MongoDB so konzipiert, dass es viele, viele kleine Dokumente oder weniger große Dokumente bevorzugt? Hängt die Antwort hauptsächlich davon ab, welche Abfragen ich ausführen möchte? (dh wie viele Kreditkarten hat Kunde X? vs Wie hoch war der durchschnittliche Betrag, den alle Kunden im letzten Monat bezahlt haben?)
Ich habe mich viel umgesehen, bin aber nicht auf Best Practices für MongoDB-Schemata gestoßen, die mir bei der Beantwortung meiner Frage helfen würden.
quelle