sql >> Database >  >> NoSQL >> MongoDB

MongoDB $ slice (ingesloten array-paging)

Dus ik ga zeggen dat je je schema moet wijzigen om opmerkingen als afzonderlijke documenten achter te laten, omdat dit een ongebonden array is en het je vragen efficiënter zal maken. Ik zal het uitleggen.

Wanneer u ingesloten documenten toevoegt aan een array die geen vaste grootte heeft, moet mongoDB het document mogelijk verplaatsen naarmate het groeit, waardoor de opvulfactor wordt gewijzigd en fragmentatie wordt veroorzaakt (de opvulfactor is een gok van de kant van mongoDB hoe groot uw document zal zijn groeien, wijst het vooraf meer ruimte toe voor dat geval).

Je bent ook beperkt tot 16 MB pr-document, dus stel je voor dat als je een gekke populaire thread krijgt of je besluit om opmerkingen uit te breiden met andere metadata, het mogelijk is dat je die barrière doorbreekt. Het ophalen van een groot document is ook duur en tijdrovend.

In het algemeen zijn ingesloten documenten geweldig als het geen ongebonden arrays zijn. Dus het bijhouden van een lijst van de top 10 reacties werkt prima, maar het bijhouden van 1000+ reacties is slecht.

Er zijn een aantal goede presentaties onder

http://www.10gen.com/presentations /mongodb-berlin/2012/10-key-performance-indicatoren http://www.10gen.com/presentations/mongosv -2011/schema-ontwerp-naar-voorbeeld

Ik denk dat er binnenkort meer werk komt aan het ontwerpen van schema's dat op de lange termijn nuttiger zal zijn. Ik denk dat het het moeilijkste is om eerlijk te zijn. Ik weet het, het kostte me een tijdje om mijn hoofd rond de verschillen met relationele modellen te wikkelen.




  1. Redis diff tussen twee lijsten?

  2. Problemen met PUT-verzoek met Node.js (express), Angular en MongoDB

  3. hoe --auth voor mongodb-afbeelding toe te voegen bij gebruik van docker-compose?

  4. Groepsaggregatie met behulp van lentegegevens mongodb