Nodejs,MongoDB(node-mongodb-native)。 FindAndModify查找doc,但不会更新它

时间:2013-06-14 10:12:08

标签: node.js mongodb node-mongodb-native

我正在尝试使用findAndModify操作来查找和更新文档。

Query: {'socket_id': data.socket_id, 'weapons.type': selectedWeapon, 'battleWeapons.type':selectedWeapon}
Update: {'$inc':{'weapons.$.nums':-1, 'battleWeapons.$.nums':-1}}

我的回调函数中有Doc(所以通过查询找到了),但是MongoDB doc没有变化。相同的命令在mongo控制台中正常工作。它改变了我需要的一切。我做错了什么?

所以整个命令看起来像:


db.collection('users', function (err, collection) {
    var condition = {'socket_id': data.socket_id, 'weapons.type': selectedWeapon, 'battleWeapons.type':selectedWeapon},
    update = {'$inc':{'weapons.$.nums':-1, 'battleWeapons.$.nums':-1}};
    collection.findAndModify(condition, [['_id','asc']], update, {'new': true}, function (err, item) {...
})});

1 个答案:

答案 0 :(得分:0)

在findAndModify中,还可以设置一个参数,以返回旧文档(更新前)或新文档(更新后)。我猜这一定是个问题。为了确认,对于现有的findAndModify()命令,在运行此命令后,从mongo控制台检查更新的文档,必须更改它。