sql >> Databasteknik >  >> NoSQL >> MongoDB

Mongoose bulkuppdateringsoperation

Du kan göra det, men problemet är att när du kommer åt det underliggande samlingsobjektet från basdrivrutinen vidtas inte samma försiktighetsåtgärder som med de implementerade metoderna för mangustmodell.

Alla modellmetoder omsluter de underliggande metoderna med andra funktioner, men den vanligaste är att se till att en databasanslutning är öppen innan du försöker komma åt metoden. Detta säkerställer att en Db instans är närvarande och en Collection() objekt kan erhållas

När du använder .collection accessor på modellen, då gör du allt på egen hand:

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)

});

Eller någon annan metod som i princip säkerställer att anslutningen faktiskt har upprättats.

När det gäller inbyggt stöd för Bulk API-metoder utan att dyka in i den underliggande drivrutinsnivån, ja, det jobbar man på för närvarande. Men du kan fortfarande implementera det själv och det kommer inte att bryta kod så länge du ansluter till en MongoDB 2.6-serverinstans eller senare.



  1. Hur uppdaterar man egenskapen i flera objekt i en array för ett dokument i Meteor collection/minimongo?

  2. MockBean-anteckning i Spring Boot-testet orsakar NoUniqueBeanDefinitionException

  3. Hur gör jag en sökning med $geoIntersects / 2dsphere i ett array-underfält?

  4. MongoDB C#-anslutningar/frånkopplingar (officiell drivrutin)