समस्या यह है कि मूल ड्राइवर इस बात से भिन्न है कि शेल विधि डिफ़ॉल्ट रूप से कैसे काम कर रही है, जिसमें "शेल" वास्तव में एक "कर्सर" ऑब्जेक्ट लौटा रहा है, जहां मूल ड्राइवर को "स्पष्ट रूप से" इस विकल्प की आवश्यकता होती है।
"कर्सर" के बिना, .aggregate()
दस्तावेज़ों की एक सरणी के रूप में एक एकल बीएसओएन दस्तावेज़ लौटाता है, इसलिए हम सीमा से बचने के लिए इसे एक कर्सर में बदल देते हैं:
let cursor = collection.aggregate(
[{ "$group": { "_id": "$internalNumber" } }],
{ "cursor": { "batchSize": 500 } }
);
cursor.toArray((err,docs) => {
// work with resuls
});
फिर आप .toArray()
. जैसी नियमित विधियों का उपयोग कर सकते हैं परिणामों को एक जावास्क्रिप्ट सरणी बनाने के लिए जो 'क्लाइंट' पर समान सीमाएं, या "कर्सर" को पुनरावृत्त करने के अन्य तरीकों को साझा नहीं करता है।