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

Къде трябва да поставя хронологията на дейностите в mongodb, вградена в потребител или отделно?

И двете статии са правилни, и двете са грешни.

Да вградите или да не вградите? Това винаги е ключовият въпрос и се свежда до вашите нужди, заявки и съхранение и дори работния ви набор.

В крайна сметка можем само да дадем насоки, които всъщност не можете да ви кажете кое е най-доброто.

Въпреки това, имайки предвид размера на емисия за дейности, аз лично не бих го вградил, тъй като лесно може да нарасне над 16 meg (на потребител), но за скоростта и силата на заявките можете да обобщите, да речем, последните 20 активности на потребител и след това да вградите това в потребителския ред (тъй като последните 20 обикновено са това, което се иска най-много).

Но след това вграждането на агрегат зависи, шардингът може да се погрижи за заявките за огромни хоризонтално мащабирани колекции и използването на правилните заявки означава, че не получавате никаква реална полза от вграждането и потенциално може да направи живота ви по-труден, като трябва да поддържате индексите, съхранението и заявки, необходими за поддържане на този поддокумент.

Що се отнася до вграждането до смърт. Много заявки в MongoDB в момента разчитат най-вече на вграждане на едно или две нива, така че може да стане трудно да се поддържат да речем 12 вложени таблици, по което време започвате да виждате въпроси тук и в групата на Google за това как да поддържате такива огромен документ (отговорът е от страна на клиента, ако наистина искате).

Имайки предвид това, бих създал обобщение на потребителя, което означава, че потребителят може да види своята собствена или други потребителски активности единично с едно отиване и връщане.

Въпреки това, като се има предвид, че един учител най-вероятно ще трябва да има страници с резултати от всички потребители, аз бих създал отделна колекция от дейности и ще направя заявка за това за тях. Странирането на съвкупност от поддокументи изисква няколко заявки и в този случай би било по-добре просто да го направите по този начин.

Надяваме се, че това трябва да ви помогне да започнете.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongoose вградени документи / DocumentsArrays id

  2. Агрегация с актуализация в mongoDB

  3. Агрегиране на ниво месец и ниво година, също намерете средната стойност в MongoDB

  4. Размерът на базата данни на диска се увеличава като кратно на CSV файла I mongoimport?

  5. Как да заявите дата на mongodb с помощта на php