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

Understøtter Mongoose Mongodb `findAndModify`-metoden?

Funktionen er ikke godt (læs:overhovedet) dokumenteret, men efter at have læst kildekoden igennem, kom jeg frem til følgende løsning.

Opret dit samlingsskema.

var Counters = new Schema({
  _id: String,
  next: Number     
});

Opret en statisk metode på skemaet, som vil afsløre findAndModify-metoden for modellens samling.

Counters.statics.findAndModify = function (query, sort, doc, options, callback) {
  return this.collection.findAndModify(query, sort, doc, options, callback);
};

Opret din model.

var Counter = mongoose.model('counters', Counters);

Find og rediger!

Counter.findAndModify({ _id: 'messagetransaction' }, [], { $inc: { next: 1 } }, {}, function (err, counter) {
  if (err) throw err;
  console.log('updated, counter is ' + counter.next);
});

Bonus

Counters.statics.increment = function (counter, callback) {
  return this.collection.findAndModify({ _id: counter }, [], { $inc: { next: 1 } }, callback);
};

Counter.increment('messagetransaction', callback);


  1. Realtidsdatastreaming med MongoDB Change Streams

  2. Sådan anvender du 'ELLER'-betingelsen i kommandoen Redis-taster

  3. Spring Boot med Session/Redis Serialiseringsfejl med dårlige Active Directory Ldap-legitimationsoplysninger

  4. konvertering af database fra mysql til mongoDb