sql >> Databasteknik >  >> NoSQL >> MongoDB

Bästa sättet att organisera underdokument i Mongo?

Jag diskuterar detta lite här, läs detta först:https://stackoverflow.com/a/27285313/ 68567

För ditt fall är alternativ 3 (att behålla en del av data i din primära modell) förmodligen det bästa. Nyckeln är att undvika obegränsad array-tillväxt .

Detta har att göra med hur Mongodb allokerar dokument. http://docs.mongodb.org/manual/core/storage/ "Varje dokument i MongoDB lagras i en post som innehåller själva dokumentet och extra utrymme, eller utfyllnad, som gör att dokumentet kan växa som ett resultat av uppdateringar."

När noden allokerar nya dokument tilldelar den utrymme baserat på storleken på det infogade dokumentet och storleken på dokument som redan finns i din samling. (Läs mer i länken ovan.) Om du har vissa dokument som är storleksordningar större än andra kommer detta sannolikt att leda till fragmentering.

Sättet att undvika att ha för många dokument i din "kommentars" underdokumentarray är med kommandona $push och $slice.http://docs.mongodb.org/manual/reference/operator/update/slice/

Så lagra de "senaste 5" och visa dem när varan laddas först. (Eller äldst, eller vilka andra sorteringskriterier du vill använda.) Ge sedan ett sätt för användaren att ladda mer som kommer att göra en separat rundresa till samlingen som har dem alla.




  1. Hur implementerar man mjuk (logisk) borttagning med MongoDB och Spring?

  2. Mongoose:Läs på ReplicaSet

  3. MongoDB $min

  4. Öka rlimit Mac OSX 10.8