Contexte
Je prototypage une conversion de notre base de données SGBDR vers MongoDB. Lors de la dénormalisation, il me semble que j'ai deux choix, l'un qui mène à plusieurs (millions) de petits documents ou l'autre qui conduit à moins (des centaines de milliers) de gros documents.
Si je pouvais le réduire à un simple analogue, ce serait la différence entre une collection avec moins de documents clients comme celui-ci (en Java):
Client de classe {
nom de chaîne privé;
adresse d'adresse privée;
// chaque carte de crédit a des centaines d'instances de paiement
private Set <CreditCard> creditCards;
}
ou une collection avec de très nombreux documents de paiement comme celui-ci:
Paiement de classe {
client privé;
carte de crédit privée;
privé Date payDate;
flottant privé payAmount;
}
Question
MongoDB est-il conçu pour préférer de très nombreux petits documents ou moins de gros documents? La réponse dépend-elle principalement des requêtes que je prévois d'exécuter? (c'est-à-dire combien de cartes de crédit le client X possède-t-il? vs quel a été le montant moyen payé par tous les clients le mois dernier?)
J'ai beaucoup regardé autour de moi, mais je ne suis tombé sur aucune des meilleures pratiques de schéma MongoDB qui m'aiderait à répondre à ma question.