Miałem ten sam problem i zacząłem przekopywać kod źródłowy mangusty (wersja 3.8.14). W końcu doprowadziło mnie to do tej linii w ciągu
- mongoose/node_modules/mongodb/lib/mongodb/collection/core.js -> wstaw (...) -> insertWithWriteCommands (...) ->
-
mongoose/node_modules/mongodb/lib/mongodb/collection/batch/ordered.js -> bulk.insert(docs[i]) -> addToOperationsList(...) -> bson.calculateObjectSize(dokument, fałsz);
var bsonSize =bson.calculateObjectSize(dokument, fałsz);
Wygląda na to, że wywołuje to BSON.calculateObjectSize, który wywołuje obliczeniaObjectSize, które następnie powtarzają się w nieskończoność. Nie byłem w stanie zagłębić się w to, co go spowodowało, ale doszedłem do wniosku, że może to mieć coś wspólnego z funkcjami wiązania mangusty ze schematem. Ponieważ wstawiałem surowe dane do mongoDB, kiedy zdecydowałem się zmienić wstawianie zbiorcze w mangoose na standardowy obiekt javascript, problem zniknął, a wstawianie zbiorcze przebiegło poprawnie. Możesz być w stanie zrobić coś podobnego.
Zasadniczo mój kod pochodził z
//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) {});
do
//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) {});