MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Czy Mongoose obsługuje metodę Mongodb `findAndModify`?

Funkcja nie jest dobrze (czytaj:w ogóle) udokumentowana, ale po przeczytaniu kodu źródłowego wymyśliłem następujące rozwiązanie.

Utwórz schemat swojej kolekcji.

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

Utwórz na schemacie metodę statyczną, która ujawni metodę findAndModify kolekcji modelu.

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

Utwórz swój model.

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

Znajdź i zmodyfikuj!

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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Agregacja w lokalnej strefie czasowej w mongodb

  2. Silnik wykrywania i monitorowania serwerów jest przestarzały

  3. Zaimplementuj funkcję autouzupełniania za pomocą wyszukiwania MongoDB

  4. Znajdź rekordy MongoDB, w których pole tablicy nie jest puste

  5. Wyszukiwanie wyrażeń regularnych MongoDB — zaczyna się od użycia sterownika javascript i NodeJS