我使用节点本机驱动程序
成功获得了推荐率最低的用户之一users.find().sort({referrals:1}).limit(1).toArray(function(error,result){
console.log(error||result);
});
^ 这很好用
v 我尝试过的这个和其他变种
当我想通过findAndModify使功能更好时,我会一遍又一遍地失败(这是我认为我从文档中得到的最接近的)
users.findAndModify({},{referrals:1},{$inc:{referrals:1}},{}).toArray(function(error,result){
console.log(error||result);
});
当我找到他时,我希望得到一个推荐率最低的用户和++ 1他的推介
答案 0 :(得分:1)
尝试使用此查询:
db.users.findAndModify({
sort: {referrals:1},
update: {$inc: {referrals:1}},
new: true
}, callback)
Here您可以看到findAndModify的所有可能参数。
答案 1 :(得分:0)
对于那些可能也在使用节点本机驱动程序的人:
根据这个答案https://stackoverflow.com/a/24326067/990434
节点本机驱动程序实现中的.findAndModify()方法与mongo shell实现不同。主要区别在于您没有为操作命名“关键”部分。
所以在这种情况下代码是:
db.users.findAndModify(
{}//query
,{referrals:1}//sort
,{$inc:{referrals:1}}//update
,{new:true}
,function(error,result){});