sql >> Database teknologi >  >> NoSQL >> MongoDB

Undgå samlet 16MB-grænse

Problemet er, at den oprindelige driver adskiller sig fra hvordan shell-metoden fungerer som standard ved, at "shell" faktisk returnerer et "cursor"-objekt, hvor den oprindelige driver har brug for denne mulighed "eksplicit".

Uden en "cursor", .aggregate() returnerer et enkelt BSON-dokument som en række dokumenter, så vi gør det til en markør for at undgå begrænsningen:

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

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

Så kan du bruge almindelige metoder som .toArray() at gøre resultaterne til et JavaScript-array, som på 'klienten' ikke deler de samme begrænsninger, eller andre metoder til iteration af en "markør".



  1. MongoDB $log10

  2. hvordan man kalder optællingsoperation efter find med mongodb java-driver

  3. Sådan droppes en database i MongoDB fra kommandolinjen

  4. Fejl ved forbindelse til MongoDb Atlas Server