sql >> Databáze >  >> NoSQL >> MongoDB

Podporuje Mongoose metodu Mongodb `findAndModify`?

Funkce není dobře (čti:vůbec) zdokumentována, ale po přečtení zdrojového kódu jsem přišel s následujícím řešením.

Vytvořte si schéma sbírky.

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

Vytvořte ve schématu statickou metodu, která odhalí metodu findAndModify kolekce modelu.

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

Vytvořte svůj model.

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

Najděte a upravte!

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. Zkompilovaný model Mongoose nelze přepsat

  2. VersionError:Na Node.js/Mongoose nebyla nalezena žádná chyba odpovídající dokumentu

  3. Jak nahradit existující dokumenty při importu souboru do MongoDB

  4. Výpis poslední zprávy každé konverzace zahrnující uživatele v MongoDB