MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Quando incorporare documenti in Mongo DB

La chiave qui è meno su "è una relazione?" e altro su "come farò ad accedervi?"

MongoDB non è "anti-riferimento". MongoDB non ha i vantaggi dei join, ma ha hanno il vantaggio dei documenti incorporati.

Finché comprendi questi compromessi, è perfettamente corretto utilizzare i riferimenti in MongoDB. Si tratta davvero di come prevedi di interrogare questi oggetti.

Forse. Alcune cose da considerare.

  • Fai games hanno un valore al di fuori del contesto dell'user ?
  • Quanti games sarà un singolo user hai?
  • Sono games natura transazionale?
  • Come intendi accedere a games ? Hai sempre bisogno di tutti i giochi di un utente?

Se hai intenzione di creare classifiche e un utente può generare centinaia di documenti di gioco, probabilmente è giusto avere giochi nella propria raccolta. Archiviare diecimila istanze di "gioco" all'interno di ciascun utente non è particolarmente utile.

Ma a seconda delle tue risposte a quanto sopra, potresti davvero andare in entrambi i modi. Come cartina di tornasole, proverei a eseguire alcuni lavori Mappa/Riduci (ovvero creare una semplice classifica ) per vedere come ti senti riguardo alla struttura dei tuoi dati.