MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Najlepszy sposób na zorganizowanie poddokumentów w Mongo?

Omówię to trochę tutaj, przeczytaj najpierw to:https://stackoverflow.com/a/27285313/ 68567

W twoim przypadku opcja 3 (przechowywanie niektórych danych w podstawowym modelu) jest prawdopodobnie najlepsza. Kluczem do sukcesu jest unikanie nieograniczonego wzrostu tablicy .

Ma to związek ze sposobem alokacji dokumentów przez Mongodb. http://docs.mongodb.org/manual/core/storage/ „Każdy dokument w MongoDB jest przechowywany w rekordzie, który zawiera sam dokument i dodatkową przestrzeń lub dopełnienie, które pozwala dokumentowi rosnąć w wyniku aktualizacji”.

Gdy węzeł alokuje nowe dokumenty, przydziela miejsce na podstawie rozmiaru wstawionego dokumentu oraz rozmiarów dokumentów znajdujących się już w Twojej kolekcji. (Przeczytaj więcej w powyższym linku.) Jeśli masz jakieś dokumenty, które są o rząd wielkości większe niż inne, prawdopodobnie doprowadzi to do fragmentacji.

Sposobem na uniknięcie zbyt wielu dokumentów w tablicy poddokumentów „comments” jest użycie poleceń $push i $slice.http://docs.mongodb.org/manual/reference/operator/update/slice/

Dlatego zapisz „najnowsze 5” i wyświetl je, gdy element zostanie załadowany po raz pierwszy. (Lub najstarsze, lub jakiekolwiek inne kryteria sortowania, których chcesz użyć). Następnie zapewnij użytkownikowi sposób na załadowanie większej liczby, co spowoduje osobną podróż w obie strony do kolekcji, która zawiera je wszystkie.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. jak zwolnić buforowanie używane przez Mongodb?

  2. mongodb sprawdza wyrażenie regularne na polach z jednej kolekcji do wszystkich pól w innej kolekcji

  3. Jak posortować dwa pola z mangustą?

  4. Schemat Mongoose ustawia sygnaturę czasową w zagnieżdżonym dokumencie

  5. Jaka jest maksymalna liczba parametrów przekazywana do zapytania $in w MongoDB?