MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Operazione di aggiornamento in blocco di Mongoose

Puoi farlo, ma il problema è che quando si accede all'oggetto di raccolta sottostante dal driver di base non vengono prese le stesse precauzioni dei metodi del modello mangusta implementati.

Tutti i metodi del modello racchiudono i metodi sottostanti con altre funzionalità, ma il più comune è assicurarsi che una connessione al database sia aperta prima di provare ad accedere al metodo. Ciò garantisce che un Db è presente un'istanza e una Collection() l'oggetto può essere ottenuto

Dopo aver utilizzato il .collection accessor sul modello, quindi fai tutto da solo:

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 qualche altro metodo che sostanzialmente assicuri che la connessione sia stata effettivamente stabilita.

Per quanto riguarda il supporto nativo per i metodi API in blocco senza immergersi nel livello del driver sottostante, sì, su questo si sta lavorando in questo momento in cui scrivo. Ma puoi ancora implementarlo da solo e non interromperà il codice finché ti connetti a un'istanza del server MongoDB 2.6 o successiva.