sql >> Database >  >> NoSQL >> MongoDB

Wat kan worden gedaan met Mongo Aggregation / Prestaties van Mongo Aggregation

Ik heb een geldig en nuttig antwoord gekregen van Google-groepen. Ik wil het graag met jullie allemaal delen.

De beperking ligt niet in het aantal documenten:de beperking ligt in de hoeveelheid geheugen die wordt gebruikt door het eindresultaat (of een tussenresultaat).

Dus:als je 200.000 documenten bij elkaar optelt, maar het resultaat past in het resultaat van 16 MB, dan zit je goed. Als u 100 documenten samenvoegt en het resultaat past niet in 16 MB, dan krijgt u een foutmelding.

Evenzo, als u een sort() of een group() uitvoert op een tussenresultaat, en die bewerking heeft meer dan 10% beschikbaar RAM-geheugen nodig, dan krijgt u een foutmelding. Dit is slechts losjes gerelateerd aan het aantal documenten dat u heeft:het is een functie van hoe groot de specifieke fase van de pijplijn is.

De limiet van 16 MB is niet instelbaar. Dit is de maximale grootte van een document in MongoDB. Aangezien het aggregatieraamwerk momenteel als een opdracht is geïmplementeerd, moet het resultaat van de aggregatie in één document worden geretourneerd:vandaar de limiet van 16 MB.

zie deze posten



  1. Query op MongoDB GridFS-metadata (Java)

  2. Redis gebruiken met Node.js en Socket.IO

  3. MongoDB - $project genest document naar hoofdniveau

  4. Hoe StrongLoop LoopBack MongoDB-gegevensbron te configureren voor implementatie in Heroku