sql >> Database teknologi >  >> NoSQL >> MongoDB

Bedste måde at organisere underdokumenter på i Mongo?

Jeg diskuterer det lidt her, læs dette først:https://stackoverflow.com/a/27285313/ 68567

For dit tilfælde er mulighed 3 (behold nogle af dataene i din primære model) sandsynligvis den bedste. Nøglen er at undgå ubegrænset matrixvækst .

Dette har at gøre med, hvordan Mongodb allokerer dokumenter. http://docs.mongodb.org/manual/core/storage/ "Hvert dokument i MongoDB er gemt i en post, som indeholder selve dokumentet og ekstra plads, eller udfyldning, som tillader dokumentet at vokse som et resultat af opdateringer."

Når node allokerer nye dokumenter, tildeler den plads baseret på størrelsen af ​​det indsatte dokument og størrelsen af ​​dokumenter, der allerede er i din samling. (Læs mere i linket ovenfor.) Hvis du har nogle dokumenter, der er større end andre, vil dette sandsynligvis føre til fragmentering.

Måden at undgå at have for mange dokumenter i dit "kommentarer" underdokumentarray er med kommandoerne $push og $slice.http://docs.mongodb.org/manual/reference/operator/update/slice/

Så gem de 'seneste 5' og vis dem, når varen først indlæses. (Eller ældste, eller hvilke andre sorteringskriterier du vil bruge.) Giv derefter en måde, hvorpå brugeren kan indlæse mere, hvilket vil gøre en separat rundtur til samlingen, der har dem alle.




  1. Brug af flere facetter i MongoDB Spring Data

  2. MongoDB 4.4.4 ændringsstrøm returnerer alle dokumentopdateringer i stedet for filtreret tilstand, der matcher én?

  3. Opdater flere elementer i et array i mongodb

  4. Installation og konfiguration af Redis på Ubuntu