Hintergrund
Ich entwickle eine Konvertierung von unserer RDBMS-Datenbank zu MongoDB. Während der Denormalisierung scheint es, als hätte ich zwei Möglichkeiten, eine, die zu vielen (Millionen) kleinerer Dokumente führt oder zu weniger (hunderttausenden) großen Dokumenten führt.MongoDB Schema Design - Viele kleine Dokumente oder weniger große Dokumente?
Wenn ich es auf eine einfache analoge destillieren könnte, wäre es der Unterschied zwischen einer Sammlung mit weniger Kundendokumente wie folgt aus (in Java) sein:
class Customer { private String name; private Address address; // each CreditCard has hundreds of Payment instances private Set<CreditCard> creditCards; }
oder eine Sammlung mit vielen, Dokumente viele Zahlungs dies wie:
class Payment { private Customer customer; private CreditCard creditCard; private Date payDate; private float payAmount; }
Frage
Ist MongoDB entwickelt, um viele, viele kleine Dokumente oder weniger große Dokumente bevorzugen? Hängt die Antwort hauptsächlich davon ab, welche Abfragen ich ausführen möchte? (Wie viele Kreditkarten hat Kunde X? vs Was war der durchschnittliche Betrag, den alle Kunden im letzten Monat bezahlt haben?)
Ich habe mich viel umgeschaut, aber ich stolperte in keine MongoDB Schema Best Practices, die helfen würden ich beantworte meine Frage.