2012-09-23 5 views
3

가능한 중복 :
In MongoDB, How to toggle a boolean field in one document with atomic operation?"토글"쿼리

나는 문서 값을 업데이트해야

, 그것을 "전환"

컬렉션은 "코멘트"입니다 boolean 플래그 "isAdmin"을 가지는

주어진 의견 ID를 업데이트 할 예정이며 isAdmin이 true이고 viceversa 인 경우이를 false로 설정합니다.

그러나이 작동하지 않습니다

db.comments.update({ "id": "xxx" }, { $set: { isAdmin: $not isAdmin } }); 

올바른 구문은 무엇입니까?

+0

이 도움이 될 : http://stackoverflow.com/questions/9459789/in-mongodb-how-to-toggle-a-boolean-field-in-one-document-with- 원자 작업 – DhruvPathak

답변

10

그런 업데이트에서 찾은 문서를 참조 할 수 없습니다. 문서를 찾으려면 쿼리를 수행 한 다음 그 값이 무엇인지 알면 업데이트를 수행해야합니다. 두 단계 프로세스 :

var doc = db.comments.findOne({id:"xxx"}); 
db.comments.update({id:"xxx"}, {$set: {isAdmin: !doc.isAdmin}}); 
+0

다중 (다중 사용 : true)을 업데이트하는 방법은 어떻게됩니까? –