sql >> Databasteknik >  >> NoSQL >> MongoDB

Mongo DB Design, inbäddning vs relationer

1) Angående dokumentgränsen på 4 MB, så här står det i "MongoDB:The Definitive Guide":

I slutändan beror det på hur stora du förväntar dig att räkningarna för en användare ska växa. Jag hoppas att utdraget ovan ger dig en uppfattning om gränserna för dokumentstorleken.

2) Avnormaliserat schema (fakturor följer med användardokumentet) är vägen att gå om du vet att du aldrig kommer att köra globala frågor på räkningar (exempel på en sådan fråga är om du vill hämta de tio senaste räkningarna in i systemet). Du måste använda map-reduce för att hämta resultat för sådana frågor om du använder ett avnormaliserat schema.

Normaliserat schema (användare och räkningar i separata dokument) är ett bättre val om du vill ha flexibilitet i hur räkningarna efterfrågas. Men eftersom MongoDB inte stöder anslutningar, måste du köra flera frågor varje gång du vill hämta räkningarna som motsvarar en användare.

Med tanke på användningsfallet du nämnde, skulle jag gå med avnormaliserat schema.

3) Alla uppdateringar i MongoDB är atomära och serialiserade. Det borde svara på Steves oro.

Du kan ha nytta av dessa bilder. http://www.slideshare.net/kbanker/mongodb-meetup

Du kan också titta på MongoDB:s sida för produktionsinstallationer. Du kanske tycker att SF.net-bilderna är användbara.



  1. Det går inte att brygga installera mongodb på mac os 10.12

  2. Hur man får användarinformation från mongodb i node.js

  3. Profilering av MongoDB-databasen för att se de utförda frågorna

  4. Specificering av en delad samling med Spring Data MongoDB