Me gustaría utilizar findAndModify para incrementar atómicamente un campo, usando Mongoose.¿Mongoose es compatible con el método `findAndModify` de Mongodb?
Sin embargo, el código de abajo lanza el "TypeError: Objeto # tiene ningún método 'findAndModify'": error
// defining schema for the "counters" table
var tableSchema = new Schema({
_id: String,
next: Number
});
// creating table object for the counters table
var counters_table = mongoose.model('counters', tableSchema);
var tableObj = new counters_table();
// increment the "next" field on the table object
var query = {_id: 'messagetransaction'};
var update = {'$inc': {next: 1}};
var ret = tableObj.findAndModify(query, [], update, true, true, function(err) {
if (err) {
throw err;
}
else {
console.log("updated!");
}
});
De acuerdo con la documentación mongodb la findAndModify debe ser el siguiente, Collection.prototype.findAndModify = function (query, sort, update, new_doc, remove_doc, function (err) { //}) ¡Pero no funciona cuando lo convierto en mangosta! Por favor, aclarame sobre esto! – Raja
Nueva función añadida en v3: http://aaronheckmann.posterous.com/mongoose-v3-part-2-findandmodify – EvdB
Mongoose v3 documentos: [findOneAndUpdate] (http://mongoosejs.com/docs/api.html#query_Query -findOneAndUpdate) o [findOneAndRemove] (http://mongoosejs.com/docs/api.html#model_Model.findOneAndRemove) – aaronheckmann