sql >> Database >  >> NoSQL >> MongoDB

Mongo DB Design, inbedding versus relaties

1) Wat betreft de documentlimiet van 4 MB, dit is wat de "MongoDB:The Definitive Guide" zegt:

Uiteindelijk hangt het af van hoe hoog je verwacht dat de rekeningen voor een gebruiker zullen groeien. Ik hoop dat het bovenstaande fragment u een idee geeft van de beperkingen die worden opgelegd door de documentgrootte.

2) Gedenormaliseerd schema (rekeningen horen bij het gebruikersdocument) is de beste keuze als u weet dat u nooit globale zoekopdrachten op rekeningen zult uitvoeren (een voorbeeld van een dergelijke vraag is of u de tien meest recente rekeningen wilt ophalen ingevoerd in het systeem). U zult map-reduce moeten gebruiken om resultaten voor dergelijke query's op te halen als u een gedenormaliseerd schema gebruikt.

Genormaliseerd schema (gebruiker en facturen in afzonderlijke documenten) is een betere keuze als u flexibiliteit wilt in de manier waarop de facturen worden opgevraagd. Aangezien MongoDB echter geen joins ondersteunt, moet u meerdere zoekopdrachten uitvoeren telkens wanneer u de rekeningen van een gebruiker wilt ophalen.

Gezien de use-case die je noemde, zou ik gaan voor een gedenormaliseerd schema.

3) Alle updates in MongoDB zijn atomair en geserialiseerd. Dat zou de bezorgdheid van Steve moeten beantwoorden.

Misschien vindt u deze dia's nuttig. http://www.slideshare.net/kbanker/mongodb-meetup

U kunt ook kijken op de pagina Productie-implementaties van MongoDB. Misschien vindt u de dia's van SF.net nuttig.



  1. Hoe hernoem je een documentveld in een MongoDB?

  2. Probleem met toegang tot Mongodb op Amazon EC2

  3. Gebruik Aggregate met $group in mongodb

  4. show dbs geeft niet geautoriseerd om opdrachtfout uit te voeren