MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Làm cách nào để chuyển đổi một trường boolean trong một tài liệu với phép toán nguyên tử?

Hiện tại, tôi không nghĩ rằng có thể làm được điều này chỉ với một thao tác. Các toán tử bitwise (http://www.mongodb.org/display/DOCS/Updating#Updating-%24bit) chưa có '$ xor' mặc dù tôi đã có bản vá cho nó.

Hiện tại, giải pháp mà tôi nghĩ đến là 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ể kiểm tra xem một mục là "đúng":

cl.find( { "_id": ..., 'field' : { '$mod' : [ 2, 1 ] } );

IE, bạn sử dụng toán tử modulo để xem nó đồng đều hay không đồng đều với việc được "đặt" và không đồng đều được "đặt". Nếu bạn muốn có hành vi đối lập (tức là tìm tất cả các mục không có cờ được đặt), thì hãy sử dụng

[ 2, 0 ];


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cách di chuyển dữ liệu trong MongoDB

  2. Cách cài đặt MongoDB

  3. Cách tạo trình rút ngắn URL với Node.js và MongoDB

  4. Chuyển đổi ObjectID (Mongodb) thành Chuỗi trong JavaScript

  5. MongoDB 3 Java kiểm tra xem bộ sưu tập có tồn tại không