findAndModify – MongoError: exception: deve specificare remove o update

Id mi piace aggiornare un array e restituire il documento. La mia syntax findAndModify è corretta?

this.becomeFollower = function(title, username, callback){ "use strict" posts.findAndModify({ query: {"title":title, "roster":"yes"}, update: { "$addToSet": { "followers":username } }, new: true, upsert: true }, function(err, doc){ console.log('find and modified ' +doc); }); } 

Non ho avuto problemi a usare questo:

  posts.update({"title":title, "roster":"yes"}, { "$addToSet": { "followers":username } }, function(err, roster){ "use strict" if(err) return callback(err, null); callback(err, roster); }); 

Guarda i documenti per node-mongodb findAndModify ; la firma assomiglia a:

 collection.findAndModify(query, sort, update, options, callback) 

Quindi dovresti fare:

  posts.findAndModify( {"title":title, "roster":"yes"}, [['_id','asc']], { "$addToSet": { "followers":username } }, {new: true, upsert: true}, function(err, doc){ console.log('find and modified ' +doc); } ); 

L’argomento sort è probabilmente opzionale, ma non è chiaro quindi l’ho incluso nell’esempio.