सुविधा ठीक नहीं है (पढ़ें:बिल्कुल) प्रलेखित, लेकिन स्रोत कोड के माध्यम से पढ़ने के बाद, मैं निम्नलिखित समाधान के साथ आया।
अपना संग्रह स्कीमा बनाएं.
var Counters = new Schema({
_id: String,
next: Number
});
स्कीमा पर एक स्थिर विधि बनाएं जो मॉडल के संग्रह की findAndModify विधि को उजागर करेगी।
Counters.statics.findAndModify = function (query, sort, doc, options, callback) {
return this.collection.findAndModify(query, sort, doc, options, callback);
};
अपना मॉडल बनाएं.
var Counter = mongoose.model('counters', Counters);
ढूंढें और संशोधित करें!
Counter.findAndModify({ _id: 'messagetransaction' }, [], { $inc: { next: 1 } }, {}, function (err, counter) {
if (err) throw err;
console.log('updated, counter is ' + counter.next);
});
बोनस
Counters.statics.increment = function (counter, callback) {
return this.collection.findAndModify({ _id: counter }, [], { $inc: { next: 1 } }, callback);
};
Counter.increment('messagetransaction', callback);