Ngay bây giờ, tôi không nghĩ rằng nó có thể làm điều này với một thao tác. Các toán tử bitwise (http://www.mongodb.org/display/DOCS/Updating#Updating-%24bit) không có '$ xor' mặc dù tôi đã vá lỗi cho nó.
Ngay bây giờ workaround Tôi nghĩ nghĩ là bằng cách luôn luôn sử dụng '$ inc':
cl.update({ "_id": ...}, { '$inc' : { 'field' : 1 } });
Sau đó, thay vì kiểm tra đúng hay sai, bạn có thể làm kiểm tra xem một mục là "true":
cl.find({ "_id": ..., 'field' : { '$mod' : [ 2, 1 ] });
IE, bạn sử dụng toán tử modulo để xem liệu nó có đồng đều hay không đồng đều thậm chí bị "bỏ đặt" và không đồng đều "được đặt". Nếu bạn muốn có những hành vi oppposite (ví dụ, tìm tất cả các mục mà không có các thiết lập cờ), sau đó sử dụng
[ 2, 0 ];
Hoạt động trên tài liệu riêng biệt là nguyên tử, nhưng hoạt động trên tập hợp tài liệu không phải là nguyên tử. Bạn có nghĩa là bạn cần thay đổi cờ cho tất cả các tài liệu của bộ sưu tập? – Oleg
Xin lỗi tôi đã không làm rõ điều này. Tôi muốn các hoạt động trên tài liệu riêng biệt. – halfjuice