आप insertMany()
का उपयोग करना चाह सकते हैं
यदि आप नवीनतम Mongoose संस्करण 4.4.X
. का उपयोग कर रहे हैं तो यहां विधि और अधिक, जो अनिवार्य रूप से Model.Collection.insertMany()
हुड के नीचे और ड्राइवर समानांतर >=1000
. को संभाल सकता है आपके लिए डॉक्स।
myData = [Obj1, Obj2, Obj3.......];
Collection1.insertMany(myData, function(error, docs) {});
या बेहतर त्रुटि प्रबंधन के लिए वादों का उपयोग करना
Collection1.insertMany(myData)
.then(function(docs) {
// do something with docs
})
.catch(function(err) {
// error handling here
});
यह दस्तावेज़ों का एक समूह बनाकर काम करता है, कॉल करता है .validate()
उन पर समानांतर में, और फिर अंतर्निहित ड्राइवर के insertMany()
के परिणाम पर toObject({ virtuals:false });
हालांकि insertMany()
प्री-सेव हुक को ट्रिगर नहीं करता है, इसका बेहतर प्रदर्शन है क्योंकि यह प्रत्येक दस्तावेज़ के लिए 1 के बजाय सर्वर पर केवल 1 राउंड-ट्रिप करता है।
नेवला संस्करणों के लिए ~3.8.8, ~3.8.22, 4.x
जो MongoDB सर्वर का समर्थन करते हैं >=2.6.x
, आप बल्क API
का उपयोग कर सकते हैं
इस प्रकार है
var bulk = Collection1.collection.initializeOrderedBulkOp(),
counter = 0;
myData.forEach(function(doc) {
bulk.insert(doc);
counter++;
if (counter % 500 == 0) {
bulk.execute(function(err, r) {
// do something with the result
bulk = Collection1.collection.initializeOrderedBulkOp();
counter = 0;
});
}
});
// Catch any docs in the queue under or over the 500's
if (counter > 0) {
bulk.execute(function(err,result) {
// do something with the result here
});
}