Estaba teniendo este mismo problema y comencé a buscar en el código fuente de mangosta (versión 3.8.14). Eventualmente me llevó a esta línea dentro de
- mangoose/node_modules/mongodb/lib/mongodb/collection/core.js -> insertar (...) -> insertar con comandos de escritura (...) ->
-
mongoose/node_modules/mongodb/lib/mongodb/collection/batch/ordered.js -> bulk.insert(docs[i]) -> añadir a la lista de operaciones(...) -> bson.calculateObjectSize(document, false);
var bsonSize =bson.calculateObjectSize(document, false);
Aparentemente, esto llama a BSON.calculateObjectSize, que llama a computeObjectSize, que luego recurre infinitamente. No pude profundizar tanto en lo que lo causó, pero pensé que podría tener algo que ver con las funciones de vinculación del contenedor de mangosta al esquema. Como estaba insertando datos sin procesar en mongoDB, una vez que decidí cambiar la inserción masiva en mongoose a un objeto javascript estándar, el problema desapareció y las inserciones masivas se realizaron correctamente. Es posible que puedas hacer algo similar.
Esencialmente, mi código pasó de
//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) {});
a
//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) {});