sql >> Base de Datos >  >> NoSQL >> MongoDB

Operación de actualización masiva de Mongoose

Puede hacerlo, pero el problema es que al acceder al objeto de colección subyacente desde el controlador base, no se toman las mismas precauciones que con los métodos del modelo mongoose implementado.

Todos los métodos del modelo envuelven los métodos subyacentes con otras funciones, pero la más común es asegurarse de que la conexión a la base de datos esté abierta antes de intentar acceder al método. Esto asegura que un Db la instancia está presente y una Collection() se puede obtener el objeto

Una vez que utilice el .collection accessor en el modelo, entonces lo está haciendo todo por su cuenta:

mongoose.connection.on('open',function(err,conn) {

   // now it's safe to use

   // { .. } Other code
   var bulk = Person.collection.initializeOrderedBulkOp();
   bulk.find(query).update(update);
   bulk.execute(callback)

});

O algún otro método que básicamente garantice que la conexión se ha establecido realmente.

En cuanto a la compatibilidad nativa con los métodos de la API masiva sin profundizar en el nivel del controlador subyacente, sí, en este momento se está trabajando en ello. Pero aún puede implementarlo usted mismo y no romperá el código siempre que se conecte a una instancia de servidor MongoDB 2.6 o superior.