Ich hatte das gleiche Problem und fing an, den Mongoose-Quellcode (Version 3.8.14) zu durchsuchen. Schließlich führte es mich zu dieser Zeile innerhalb von
- mongoose/node_modules/mongodb/lib/mongodb/collection/core.js -> Einfügen (...) -> insertWithWriteCommands (...) ->
-
mongoose/node_modules/mongodb/lib/mongodb/collection/batch/ordered.js -> bulk.insert(docs[i]) -> addToOperationsList(...) -> bson.calculateObjectSize(document, false);
var bsonSize =bson.calculateObjectSize(document, false);
Anscheinend ruft dies BSON.calculateObjectSize auf, das computeObjectSize aufruft, das dann unendlich rekursiv ist. Ich war nicht in der Lage, so weit in die Ursache einzudringen, dachte aber, dass es etwas mit den Mungo-Wrapper-Bindungsfunktionen an das Schema zu tun haben könnte. Da ich Rohdaten in MongoDB einfügte, verschwand das Problem, nachdem ich mich entschieden hatte, die Masseneinfügung in Mongoose in ein Standard-Javascript-Objekt zu ändern, und die Masseneinfügungen wurden korrekt durchgeführt. Möglicherweise können Sie etwas Ähnliches tun.
Im Wesentlichen ging mein Code von
//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) {});
zu
//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) {});