Das Problem besteht darin, dass sich der native Treiber von der standardmäßigen Arbeitsweise der Shell-Methode dadurch unterscheidet, dass die „Shell“ tatsächlich ein „Cursor“-Objekt zurückgibt, wo der native Treiber diese Option „explizit“ benötigt.
Ohne "Cursor", .aggregate()
gibt ein einzelnes BSON-Dokument als Array von Dokumenten zurück, also verwandeln wir es in einen Cursor, um die Einschränkung zu umgehen:
let cursor = collection.aggregate(
[{ "$group": { "_id": "$internalNumber" } }],
{ "cursor": { "batchSize": 500 } }
);
cursor.toArray((err,docs) => {
// work with resuls
});
Dann können Sie reguläre Methoden wie .toArray()
verwenden um die Ergebnisse zu einem JavaScript-Array zu machen, das auf dem 'Client' nicht die gleichen Beschränkungen hat, oder andere Methoden zum Iterieren eines 'Cursors'.