И двете статии са правилни, и двете са грешни.
Да вградите или да не вградите? Това винаги е ключовият въпрос и се свежда до вашите нужди, заявки и съхранение и дори работния ви набор.
В крайна сметка можем само да дадем насоки, които всъщност не можете да ви кажете кое е най-доброто.
Въпреки това, имайки предвид размера на емисия за дейности, аз лично не бих го вградил, тъй като лесно може да нарасне над 16 meg (на потребител), но за скоростта и силата на заявките можете да обобщите, да речем, последните 20 активности на потребител и след това да вградите това в потребителския ред (тъй като последните 20 обикновено са това, което се иска най-много).
Но след това вграждането на агрегат зависи, шардингът може да се погрижи за заявките за огромни хоризонтално мащабирани колекции и използването на правилните заявки означава, че не получавате никаква реална полза от вграждането и потенциално може да направи живота ви по-труден, като трябва да поддържате индексите, съхранението и заявки, необходими за поддържане на този поддокумент.
Що се отнася до вграждането до смърт. Много заявки в MongoDB в момента разчитат най-вече на вграждане на едно или две нива, така че може да стане трудно да се поддържат да речем 12 вложени таблици, по което време започвате да виждате въпроси тук и в групата на Google за това как да поддържате такива огромен документ (отговорът е от страна на клиента, ако наистина искате).
Имайки предвид това, бих създал обобщение на потребителя, което означава, че потребителят може да види своята собствена или други потребителски активности единично с едно отиване и връщане.
Въпреки това, като се има предвид, че един учител най-вероятно ще трябва да има страници с резултати от всички потребители, аз бих създал отделна колекция от дейности и ще направя заявка за това за тях. Странирането на съвкупност от поддокументи изисква няколко заявки и в този случай би било по-добре просто да го направите по този начин.
Надяваме се, че това трябва да ви помогне да започнете.