2013-06-14 3 views
1

findAndModify 작업을 사용하여 doc을 찾고 업데이트하려고합니다. Nodejs, MongoDB (노드 - mongodb- 네이티브). FindAndModify가 문서를 찾지 만 업데이트하지 않습니다

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

나는 내 콜백 함수에서 문서를 가지고 (그래서 쿼리에 의해 발견),하지만 MongoDB의의 문서에는 변화가 없습니다. 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) {... 
})}); 

답변

0

findAndModify, 한 당신이 설정할 수 있습니다 (갱신 전) 이전 문서를 반환하기 위해 더 많은 매개 변수 또는 (갱신 후) 새 문서가 : 같은

그래서 전체 명령을 보인다. 나는 이것이 반드시 문제가되어야한다고 생각한다. 확인을 위해 기존의 findAndModify() 명령에 대해이 명령을 실행 한 후 mongo 콘솔에서 업데이트 된 문서를 확인하십시오. 변경해야합니다.

+0

Mongo 콘솔에서 명령을 실행하면 모든 것이 잘 변경되지만 스크립트를 실행하지 않으면 아무 것도 변경되지 않습니다. DB와 같은 값으로, 이전과 같은 문서입니다. – Aliansys