Problém je v tom, že nativní ovladač se liší od toho, jak metoda shellu funguje ve výchozím nastavení v tom, že „shell“ ve skutečnosti vrací objekt „cursor“, kde nativní ovladač tuto možnost „explicitně“ potřebuje.
Bez "kurzoru", .aggregate()
vrací jeden dokument BSON jako pole dokumentů, takže jej změníme na kurzor, abychom se vyhnuli omezení:
let cursor = collection.aggregate(
[{ "$group": { "_id": "$internalNumber" } }],
{ "cursor": { "batchSize": 500 } }
);
cursor.toArray((err,docs) => {
// work with resuls
});
Pak můžete použít běžné metody jako .toArray()
vytvořit z výsledků pole JavaScript, které na 'klientovi' nesdílí stejná omezení, nebo jiné metody pro iteraci "kurzoru".