Зависи.
Зависи колко от всеки от тези видове обекти очаквате да имате. Можете ли да ги поставите всички в един MongoDB документ за даден потребител? Вероятно не.
Зависи от връзките - потребител-акаунт е връзка "един към много" или "много към много"? Ако е един към много и броят на акаунтите е малък, може да изберете да ги поставите в IList на потребителски документ.
Все още можете да моделирате връзки в MongoDB с отделни колекции, НО в базата данни няма съединения, така че трябва да направите това в код. Зареждането на потребител и след това зареждането на неговите акаунти може да е добре от гледна точка на ефективността.
Можете да индексирате INTO масиви на документи. Не мислете за индекс просто като за индекс на просто поле в документ (като SQL). Можете да използвате, да речем, колекция от етикети в документ и да индексирате в етикетите. (Вижте http://www.mongodb.org/display/DOCS/Indexes #Индекси-Масиви )
Когато извличате или записвате данни, можете да извършите частично четене и частично записване на всеки документ. (вижте http://www.mongodb.org/display /DOCS/Извличане+на+подмножество+от+полета )
И накрая, когато не можете да видите как да получите това, което искате с помощта на колекции и индекси, може да успеете да го постигнете с помощта на намаляване на картата. Например, за да намерите всички маркери, които се използват в момента, сортирани по тяхната честота на използване, трябва да картирате всеки документ, излъчващ етикетите, използвани в него, и след това бихте намалили който е зададен, за да получите желания резултат. След това можете да съхраните резултата от това намаляване на картата за постоянно и да го актуализирате само когато е необходимо.
Още едно притеснение:Споменавате изчисляване на суми по етикет. Ако искате последователност на транзакциите със счетоводно качество, MongoDB може да не е правилният избор за вас. „Eventual-consistency“ е името на играта за NoSQL хранилища за данни и те като цяло не са подходящи за финансови транзакции. Например, няма значение дали един потребител види публикация в блог с 3 коментара, докато друг вижда 4, защото те са ударили различни копия на реплики, които все още не са синхронизирани, но за финансов отчет този вид последователност има значение - вашият отчетът може да не се събере!