यह एक दिलचस्प बयान है, और यह 2.6 रिलीज के रूप में प्रलेखन के लिए नया है ताकि आप देखेंगे कि यह उस अनुभाग में मौजूद नहीं था जिसे आप पहले रिलीज़ के संदर्भ में संदर्भित करते हैं।
बेशक वास्तविक सीमा 16 एमबी बीएसओएन सीमा है, क्योंकि यह प्रभावी रूप से एक बीएसओएन दस्तावेज़ के रूप में तार पर भेजा जा सकता है। जब आप महसूस करते हैं कि यह "बल्क अपडेट्स" के लिए दिखाए गए अनुसार update के रनकॉमंड फॉर्म जैसे चीजों के शीर्ष पर एक अभिव्यक्ति API है, या अन्यथा सम्मिलित करता है जो स्पष्ट रूप से इस फ़ॉर्म को ले सकता है।
जिस तरह से मैं आमतौर पर इसे एक उदाहरण के रूप में लिखता हूं, थोक संचालन जोड़ते समय वर्तमान पुनरावृत्ति के मॉड्यूलू की जांच करेगा और हर बार केवल "निष्पादित" होगा। नोड ड्राइवर के लिए नहीं सटीक सिंटैक्स, लेकिन मूल रूप: तुम क्या कर रहे हैं पर निर्भर करता
var bulk = db.collection.initializeUnorderedBulkOp();
counter = 0;
longArrayOrStream.forEach(function(doc) {
bulk.find({ "_id": doc._id }).update(
{ "$set": { "somefield": doc.somefield }});
counter++;
if (counter % 500 == 0) {
bulk.execute();
counter = 0;
bulk = db.collection.initializeUnorderedBulkOp();
}
});
if (counter > 0)
bulk.execute();
या कुछ इसी तरह की। तो यह आपके द्वारा उपयोग किए जा रहे वॉल्यूम से काफी कम होगा, लेकिन अनिवार्य रूप से प्रबंधनीय हिस्सों में जो नेटवर्क पर बहुत अधिक नहीं हैं और निश्चित रूप से 16 एमबी के तहत सुरक्षित रूप से सुरक्षित हैं।
तो बीएसओएन सीमा पूर्ण कठोर सीमा है, लेकिन व्यावहारिक कारणों से और यह भी मानते हुए कि आप त्रुटि स्थिति की जांच करना चाहेंगे जो आपको प्रतिक्रिया में एक बड़े दस्तावेज़ में भी प्राप्त होगा, आप शायद इन्हें रखना चाहते हैं छोटे टुकड़ों में।
यह एक समय में एक ऑपरेशन करने से बेहतर है, और मुझे नहीं पता कि मैं वास्तव में एक बार में तार पर 16 एमबी तक भेजना चाहता हूं और/या संभावित त्रुटियों के लिए 16 एमबी प्रतिक्रिया की जांच करना चाहता हूं।
स्रोत
2014-06-16 07:14:13
अधिकतम आकार एक बीएसओएन दस्तावेज़ है जिसका वर्तमान सीमा 16 एमईजी पर निर्धारित है, इसी तरह बीएसओएन दस्तावेजों का उपयोग करके मोंगो डीबी संचार करता है। – Sammaye