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

MongoDB $slice (stronicowanie tablicy osadzonej)

Powiem więc, że powinieneś przełączyć swój schemat, aby pozostawić komentarze jako oddzielne dokumenty, ponieważ jest to tablica niepowiązana i sprawi, że Twoje zapytania będą bardziej wydajne. Wyjaśnię to.

Kiedy dodasz osadzone dokumenty do tablicy, która nie ma stałego rozmiaru, mongoDB będzie potencjalnie musiał przenosić dokument w miarę wzrostu, zmieniając współczynnik wypełnienia i powodując fragmentację (współczynnik wypełnienia to przypuszczenie ze strony mongodb, jak duży będzie twój dokument rośnie, wstępnie przydziela więcej miejsca na ten przypadek).

Jesteś również ograniczony do 16 MB dokumentu pr, więc wyobraź sobie, że jeśli natrafisz na szalenie popularny wątek lub zdecydujesz się rozszerzyć komentarze o inne metadane, możliwe jest, że przełamiesz tę barierę. Odzyskiwanie dużego dokumentu jest również kosztowne i czasochłonne.

Ogólnie dokumenty osadzone są świetne, jeśli nie są niezwiązanymi tablicami. Tak więc utrzymywanie listy 10 najlepszych komentarzy będzie działać świetnie, ale przechowywanie ponad 1000 komentarzy jest złe.

Istnieje kilka dobrych prezentacji pod

http://www.10gen.com/presentations /mongodb-berlin/2012/10-key-performance-indicators http://www.10gen.com/presentations/mongosv -2011/schemat-design-by-example

Myślę, że wkrótce będzie więcej prac nad projektowaniem schematów, które będą bardziej pomocne na dłuższą metę. Myślę, że najtrudniej jest być szczerym. Wiem, trochę czasu zajęło mi zrozumienie różnic w stosunku do modeli relacyjnych.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongoose TypeError:użytkownik nie jest konstruktorem

  2. Mongoose/NextJS — Model nie jest zdefiniowany / Nie można nadpisać modelu po skompilowaniu

  3. Jak wydrukować więcej niż 20 pozycji (dokumentów) w powłoce MongoDB?

  4. Usuń podpola z dokumentu mongoDb

  5. Nie można uruchomić mongos