MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Wann Sie Dokumente in Mongo DB einbetten sollten

Hier geht es weniger um "Ist das eine Beziehung?" und mehr über "Wie greife ich darauf zu?"

MongoDB ist nicht "Anti-Referenz". MongoDB tut das nicht haben die Vorteile von Joins, aber tun profitieren Sie von eingebetteten Dokumenten.

Solange Sie diese Kompromisse verstehen, ist es vollkommen fair, Referenzen in MongoDB zu verwenden. Es geht wirklich darum, wie Sie diese Objekte abfragen möchten.

Vielleicht. Einige Dinge zu beachten.

  • Spiele games außerhalb des Kontexts von user einen Wert haben ?
  • Wie viele games wird ein einzelner user haben?
  • Ist games Transaktionscharakter?
  • Wie werden Sie auf games zugreifen ? Benötigen Sie immer alle Spiele eines Benutzers?

Wenn Sie vorhaben, Bestenlisten zu erstellen, und ein Benutzer Hunderte von Spieldokumenten erstellen kann, ist es wahrscheinlich fair, Spiele in seiner eigenen Sammlung zu haben. Das Speichern von zehntausend Instanzen von "Spiel" in jedem Benutzer ist nicht besonders nützlich.

Aber abhängig von Ihren Antworten auf das Obige könnten Sie wirklich in beide Richtungen gehen. Als Lackmustest würde ich versuchen, einige Map/Reduce-Jobs auszuführen (d. h. eine einfache Bestenliste erstellen ), um zu sehen, wie Sie über die Struktur Ihrer Daten denken.