私はこれと同じ問題を抱えていて、マングースのソースコード(バージョン3.8.14)を調べ始めました。最終的に、それは私を
内のこの行に導きました- mongoose / node_modules / mongodb / lib / mongodb / collection /core.js->挿入 (...)-> insertWithWriteCommands (...)->
-
mongoose / node_modules / mongodb / lib / mongodb / collection / batch / ordered.js-> bullk.insert(docs [i]) -> addToOperationsList(...) -> bson.calculateObjectSize(document、false);
var bsonSize =bson.calculateObjectSize(document、false);
どうやら、これはBSON.calculateObjectSizeを呼び出し、calculateObjectSizeを呼び出し、それが無限に繰り返されます。その原因を深く掘り下げることはできませんでしたが、マングースラッパーのスキーマへのバインディング関数と関係があるのではないかと考えました。生データをmongoDBに挿入していたので、mongooseの一括挿入を標準のjavascriptオブジェクトに変更すると、問題は解決し、一括挿入は正しく行われました。似たようなことができるかもしれません。
基本的に、私のコードは
//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) {});