sql >> Database >  >> NoSQL >> MongoDB

Vermijd de totale limiet van 16 MB

Het probleem is dat de native driver verschilt van hoe de shell-methode standaard werkt, omdat de "shell" in feite een "cursor" -object retourneert waar de native driver deze optie "expliciet" nodig heeft.

Zonder een "cursor", .aggregate() retourneert een enkel BSON-document als een array van documenten, dus we veranderen het in een cursor om de beperking te vermijden:

let cursor = collection.aggregate(
  [{ "$group": { "_id": "$internalNumber" } }],
  { "cursor": { "batchSize": 500 } }
);

cursor.toArray((err,docs) => {
   // work with resuls
});

Dan kun je reguliere methoden gebruiken zoals .toArray() om van de resultaten een JavaScript-array te maken die op de 'client' niet dezelfde beperkingen heeft, of andere methoden voor het herhalen van een 'cursor'.



  1. hoe de caching vrij te geven die wordt gebruikt door Mongodb?

  2. MongoDB/PyMongo:meerdere criteria opvragen - onverwachte resultaten

  3. MongoDB - Aggregatie - Om unieke items in een array te krijgen

  4. Een tekenreeks en een getal samenvoegen in SQL