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

Beste Möglichkeit, Filialdokumente in Mongo zu organisieren?

Ich diskutiere das hier ein wenig, lies zuerst dies:https://stackoverflow.com/a/27285313/ 68567

Für Ihren Fall ist Option 3 (einige der Daten in Ihrem primären Modell behalten) wahrscheinlich die beste. Der Schlüssel liegt darin, unbeschränktes Array-Wachstum zu vermeiden .

Dies hat damit zu tun, wie Mongodb Dokumente zuordnet. http://docs.mongodb.org/manual/core/storage/ "Jedes Dokument in MongoDB wird in einem Datensatz gespeichert, der das Dokument selbst und zusätzlichen Platz oder Auffüllung enthält, wodurch das Dokument als Ergebnis von Aktualisierungen wachsen kann."

Wenn der Knoten neue Dokumente zuweist, weist er Speicherplatz basierend auf der Größe des eingefügten Dokuments und der Größe der Dokumente, die sich bereits in Ihrer Sammlung befinden, zu. (Lesen Sie mehr unter dem obigen Link.) Wenn Sie einige Dokumente haben, die um Größenordnungen größer sind als andere, führt dies wahrscheinlich zu einer Fragmentierung.

Mit den Befehlen $push und $slice können Sie verhindern, dass zu viele Dokumente in Ihrem Unterdokument-Array „Kommentare“ vorhanden sind.http://docs.mongodb.org/manual/reference/operator/update/slice/

Speichern Sie also die „neuesten 5“ und zeigen Sie diese an, wenn das Element zum ersten Mal geladen wird. (Oder älteste oder andere Sortierkriterien, die Sie verwenden möchten.) Bieten Sie dem Benutzer dann eine Möglichkeit, mehr zu laden, wodurch ein separater Roundtrip zu der Sammlung erfolgt, die alle enthält.