MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Mongoose-Massenaktualisierungsvorgang

Sie können es tun, aber das Problem ist, dass beim Zugriff auf das zugrunde liegende Sammlungsobjekt vom Basistreiber nicht die gleichen Vorsichtsmaßnahmen getroffen werden wie bei den implementierten Mongoose-Modellmethoden.

Alle Modellmethoden umhüllen die zugrunde liegenden Methoden mit anderen Features, aber am häufigsten wird sichergestellt, dass eine Datenbankverbindung geöffnet ist, bevor versucht wird, auf die Methode zuzugreifen. Dadurch wird sichergestellt, dass eine Db -Instanz vorhanden ist und eine Collection() Objekt erhalten werden

Sobald Sie die .collection verwenden accessor auf dem Modell, dann machen Sie alles selbst:

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)

});

Oder eine andere Methode, die grundsätzlich sicherstellt, dass die Verbindung tatsächlich hergestellt wurde.

Was die native Unterstützung für Massen-API-Methoden betrifft, ohne in die zugrunde liegende Treiberebene einzutauchen, ja, daran wird zum jetzigen Zeitpunkt des Schreibens gearbeitet. Aber Sie können es trotzdem selbst implementieren und es wird keinen Code brechen, solange Sie eine Verbindung zu einer Serverinstanz von MongoDB 2.6 oder höher herstellen.