Problemet är att den inbyggda drivrutinen skiljer sig från hur skalmetoden fungerar som standard genom att "skalet" faktiskt returnerar ett "markör"-objekt där den inbyggda drivrutinen behöver detta alternativ "explicit".
Utan en "markör", .aggregate()
returnerar ett enda BSON-dokument som en uppsättning dokument, så vi förvandlar det till en markör för att undvika begränsningen:
let cursor = collection.aggregate(
[{ "$group": { "_id": "$internalNumber" } }],
{ "cursor": { "batchSize": 500 } }
);
cursor.toArray((err,docs) => {
// work with resuls
});
Sedan kan du använda vanliga metoder som .toArray()
att göra resultaten till en JavaScript-array som på 'klienten' inte delar samma begränsningar, eller andra metoder för att iterera en "markör".