MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Най-добрият начин за организиране на поддокументи в Mongo?

Обсъждам това малко тук, първо прочетете това:https://stackoverflow.com/a/27285313/ 68567

За вашия случай Вариант 3 (запазване на някои от данните във вашия основен модел) вероятно е най-добрият. Ключът е да избягвате неограничен растеж на масив .

Това е свързано с това как Mongodb разпределя документи. http://docs.mongodb.org/manual/core/storage/ „Всеки документ в MongoDB се съхранява в запис, който съдържа самия документ и допълнително пространство или подложка, което позволява на документа да расте в резултат на актуализации.“

Когато възелът разпределя нови документи, той разпределя място въз основа на размера на вмъкнатия документ и размерите на документите, които вече са във вашата колекция. (Прочетете повече във връзката по-горе.) Ако имате някои документи, които са с порядък по-големи от други, това вероятно ще доведе до фрагментация.

Начинът да избегнете твърде много документи във вашия масив от поддокументи „коментари“ е с командите $push и $slice.http://docs.mongodb.org/manual/reference/operator/update/slice/

Затова запазете „последните 5“ и ги покажете при първото зареждане на елемента. (Или най-стари, или какъвто и да е друг критерий за сортиране, който искате да използвате.) След това осигурете начин за потребителя да зареди повече, което ще направи отделно двупосочно пътуване до колекцията, която съдържа всички тях.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB $count Оператор за агрегиране

  2. pymongo.errors.ConnectionFailure:не можа да се свърже с localhost:27017:[Errno 111] Връзката е отказана

  3. Mongoose:не вмъквайте, ако елементът вече е съхранен

  4. Колекция за копиране на Mongo и потребителски разрешения

  5. mongodb текстово търсене с помощта на няколко езика