我想更新数组并返回文档.我的findAndModify语法是否正确?
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); }); }
使用它我没有问题:
posts.update({"title":title,{ "$addToSet": { "followers":username } },roster){ "use strict" if(err) return callback(err,null); callback(err,roster); });
解决方法
看看
docs for node-mongodb findAndModify;签名看起来像:
collection.findAndModify(query,sort,update,options,callback)
所以你应该这样做:
posts.findAndModify( {"title":title,[['_id','asc']],{new: true,upsert: true},doc){ console.log('find and modified ' +doc); } );
sort参数可能是可选的,但它不清楚所以我将它包含在示例中.