sql >> Database >  >> NoSQL >> MongoDB

Ondersteunt Mongoose de Mongodb `findAndModify`-methode?

De functie is niet goed (lees:helemaal niet) gedocumenteerd, maar na het doorlezen van de broncode kwam ik tot de volgende oplossing.

Maak je collectieschema.

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

Maak een statische methode voor het schema die de methode findAndModify van de verzameling van het model blootlegt.

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

Maak uw model.

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

Zoeken en wijzigen!

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. RedisClient LUA API's

  2. redis inzetten voor heroku kan geen verbinding maken

  3. Hoe selderij-redis configureren in django-project op Microsoft Azure?

  4. Kan mongodb worden gebruikt als een ingesloten database?