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

Cập nhật MongoDB với điều kiện

Khởi động Mongo 4.2 , db.collection.update() có thể chấp nhận một đường dẫn tổng hợp, cuối cùng cho phép cập nhật / tạo một trường dựa trên một trường khác:

// { a: "Hello", b: "World" }
// { a: "Olleh", b: "Dlrow" }
db.collection.update(
  {},
  [ { $set: { active: { $eq: [ "$a", "Hello" ] } } } ],
  { multi: true }
)
// { a: "Hello", b: "World", active: true  }
// { a: "Olleh", b: "Dlrow", active: false }
  • Phần đầu tiên {} là truy vấn đối sánh, lọc tài liệu nào cần cập nhật (trong trường hợp của chúng tôi là tất cả tài liệu).

  • Phần thứ hai [ { $set: { active: { $eq: [ "$a", "Hello" ] } } } ] là đường ống tổng hợp cập nhật (lưu ý dấu ngoặc vuông biểu thị việc sử dụng đường ống tổng hợp). $set là một toán tử tổng hợp mới và là bí danh của $addFields . Sau đó, bất kỳ toán tử tổng hợp nào cũng có thể được sử dụng trong $set sân khấu; trong trường hợp của chúng tôi, kiểm tra bình đẳng có điều kiện phụ thuộc vào giá trị để sử dụng cho active mới trường.

  • Đừng quên { multi: true } , nếu không, chỉ tài liệu phù hợp đầu tiên sẽ được cập nhật.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. 2 cách thay thế chuỗi con trong MongoDB

  2. MongoDB Thay thế các giá trị mảng cụ thể

  3. MongoDB $ push

  4. Mongodb có thể được sử dụng như một cơ sở dữ liệu nhúng không?

  5. Cách giám sát MongoDB với Prometheus &ClusterControl