मुझे भी यही समस्या हो रही थी और मैंने नेवला स्रोत कोड (संस्करण 3.8.14) के माध्यम से खुदाई शुरू कर दी। आखिरकार इसने मुझे
. के भीतर इस लाइन तक पहुँचाया- मोंगोज़/नोड_मॉड्यूल्स/मोंगोडब/लिब/मोंगोडब/कलेक्शन/कोर.जेएस -> सम्मिलित करें (...) -> insertWithWriteCommands (...) ->
-
mongoose/node_modules/mongodb/lib/mongodb/collection/batch/ordered.js -> bulk.insert(docs[i]) -> addToOperationsList(...) -> bson.calculateObjectSize(दस्तावेज़, असत्य);
var bsonSize =bson.calculateObjectSize (दस्तावेज़, गलत);
जाहिर है, यह BSON.calculateObjectSize को कॉल करता है, जो कैलकुलेटऑब्जेक्टसाइज को कॉल करता है जो तब असीम रूप से रिकर्स करता है। मैं उस कारण तक खुदाई करने में सक्षम नहीं था, लेकिन मुझे लगा कि स्कीमा के लिए नेवला आवरण बाध्यकारी कार्यों के साथ इसका कुछ संबंध हो सकता है। चूंकि मैं कच्चे डेटा को mongoDB में सम्मिलित कर रहा था, एक बार जब मैंने एक मानक जावास्क्रिप्ट ऑब्जेक्ट में नेवला में बल्क इंसर्ट को बदलने का निर्णय लिया, तो समस्या दूर हो गई और बल्क इंसर्ट सही ढंग से हुआ। आप कुछ ऐसा ही करने में सक्षम हो सकते हैं।
अनिवार्य रूप से, मेरा कोड
. से चला गया//EDIT: mongoose.model needs lowercase 'm' for getter method
var myModel = mongoose.model('MyCollection');
var toInsert = myModel();
var array = [toInsert];
myModel.collection.insert(array, {}, function(err, docs) {});
करने के लिए
//EDIT: mongoose.model needs lowercase 'm' for getter method
var myModel = mongoose.model('MyCollection');
var toInsert = { //stuff in here
name: 'john',
date: new Date()
};
var array = [toInsert];
myModel.collection.insert(array, {}, function(err, docs) {});