Vấn đề là trình điều khiển gốc khác với cách phương thức shell hoạt động theo mặc định ở chỗ "shell" thực sự trả về một đối tượng "con trỏ" nơi trình điều khiển gốc cần tùy chọn này "rõ ràng".
Không có "con trỏ", .aggregate()
trả về một tài liệu BSON duy nhất dưới dạng một mảng tài liệu, vì vậy chúng tôi biến nó thành một con trỏ để tránh giới hạn:
let cursor = collection.aggregate(
[{ "$group": { "_id": "$internalNumber" } }],
{ "cursor": { "batchSize": 500 } }
);
cursor.toArray((err,docs) => {
// work with resuls
});
Sau đó, bạn có thể sử dụng các phương thức thông thường như .toArray()
để làm cho kết quả trở thành một mảng JavaScript mà trên 'máy khách' không có chung các giới hạn hoặc các phương pháp khác để lặp lại một "con trỏ".