विशेष रूप से "मोंगोज़" में नहीं, या कम से कम अभी तक लेखन के रूप में नहीं। 2.6 रिलीज के रूप में मोंगोडीबी खोल वास्तव में "थोक संचालन एपीआई" "हुड के तहत" का उपयोग करता है क्योंकि यह सभी सामान्य सहायक विधियों के लिए था। इसके कार्यान्वयन में, यह पहले ऐसा करने का प्रयास करता है, और यदि एक पुराने संस्करण सर्वर का पता चलता है तो विरासत कार्यान्वयन के लिए "फ़ॉलबैक" होता है।
सभी नेवला विधियाँ "वर्तमान में" "विरासत" कार्यान्वयन या लेखन चिंता प्रतिक्रिया और मूल विरासत विधियों का उपयोग करती हैं। लेकिन एक .collection
है किसी दिए गए नेवला मॉडल से एक्सेसर जो अनिवार्य रूप से अंतर्निहित "नोड नेटिव ड्राइवर" से "संग्रह ऑब्जेक्ट" तक पहुंचता है, जिस पर स्वयं नेवला लागू किया जाता है:
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
mongoose.connect('mongodb://localhost/test');
var sampleSchema = new Schema({},{ "strict": false });
var Sample = mongoose.model( "Sample", sampleSchema, "sample" );
mongoose.connection.on("open", function(err,conn) {
var bulk = Sample.collection.initializeOrderedBulkOp();
var counter = 0;
// representing a long loop
for ( var x = 0; x < 100000; x++ ) {
bulk.find(/* some search */).upsert().updateOne(
/* update conditions */
});
counter++;
if ( counter % 1000 == 0 )
bulk.execute(function(err,result) {
bulk = Sample.collection.initializeOrderedBulkOp();
});
}
if ( counter % 1000 != 0 )
bulk.execute(function(err,result) {
// maybe do something with result
});
});
वहां मुख्य पकड़ यह है कि "मोंगोज़ विधियां" वास्तव में जागरूक हैं कि वास्तव में एक कनेक्शन वास्तव में अभी तक नहीं बनाया जा सकता है और यह पूरा होने तक "कतार" हो सकता है। आप जिस मूल चालक में "खोद रहे हैं" वह यह भेद नहीं करता है।
तो आपको वास्तव में जागरूक होना होगा कि कनेक्शन किसी न किसी रूप में स्थापित होता है। लेकिन जब तक आप अपने काम में सावधानी बरतते हैं, तब तक आप मूल ड्राइवर विधियों का उपयोग कर सकते हैं।