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

lagring af op-/nedstemmer i mongodb

MongoDB-dokumenter er i øjeblikket begrænset til et maksimum på 16 MB, så forudsat at Gilberts beregninger er nøjagtige, ville du ikke være i stand til at gemme alle 6 millioner user_id s i Post dokument.

Du kan dog overveje at gemme stemmerne i User dokument i stedet (dvs. post_id). s, som den pågældende bruger stemte på). Det er meget mindre sandsynligt, at en bruger stemmer på 6 millioner forskellige indlæg, så på denne måde når du ikke størrelsesgrænsen så hurtigt.

En anden måde at håndtere dette på:Hvis du forventer, at der er mange stemmer for et bestemt indlæg, vil du måske gemme stemmerne uden for Post dokumenter i en separat samling og lav en ekstra forespørgsel, der ligner en mange-til-mange JOIN-tabel på SQL-måde:

user_votes { user_id: ObjectId(...), post_id: ObjectId(...), vote:-1 }

og opret et sammensat indeks på (user_id, post_id).



  1. Redis klynge/belastningsbalancering

  2. Sådan hentes/findes alle elementer i et indlejret array i MongoDB Java

  3. Sådan håndteres dato lavere end 1970 i MongoDB

  4. StackExchange Redis ChannelPrefix Ikke Scoping-nøgler