Problem polega na tym, że natywny sterownik różni się od domyślnej metody działania powłoki tym, że „powłoka” w rzeczywistości zwraca obiekt „kursor”, gdzie natywny sterownik „wyraźnie” potrzebuje tej opcji.
Bez „kursora”, .aggregate()
zwraca pojedynczy dokument BSON jako tablicę dokumentów, więc zamieniamy go w kursor, aby uniknąć ograniczenia:
let cursor = collection.aggregate(
[{ "$group": { "_id": "$internalNumber" } }],
{ "cursor": { "batchSize": 500 } }
);
cursor.toArray((err,docs) => {
// work with resuls
});
Następnie możesz użyć zwykłych metod, takich jak .toArray()
zrobić z wyników tablicę JavaScript, która na 'kliencie' nie ma tych samych ograniczeń, lub innych metod iteracji "kursora".