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

MongoDB $ unset Nếu điều kiện được đáp ứng

Truy vấn

  • sử dụng một biến hệ thống $$REMOVE nếu một trường nhận được giá trị này thì trường đó sẽ bị xóa
  • vì vậy điều kiện là user.code , giữ nguyên giá trị cũ nếu không "BLOCKED" , "CANCELLED" , khác "$$REMOVE" lĩnh vực

Mã kiểm tra tại đây

db.collection.aggregate([
  {
    "$set": {
      "user.code": {
        "$cond": [
          {
            "$in": [
              "$user.status",
              [
                "BLOCKED",
                "CANCELLED"
              ]
            ]
          },
          "$$REMOVE",
          "$user.code"
        ]
      }
    }
  }
])

Chỉnh sửa

Đoạn mã trên kiểm tra user.status nhưng bạn có muốn xóa mã hay không dựa trên user.olderAdress.status (sau khi thư giãn) (2 trường có trạng thái cùng tên)

Truy vấn (thêm điều này sau các giai đoạn bạn đã có)

Mã kiểm tra

{
    "$set": {
      "user.code": {
        "$cond": [
          {
            "$in": [
              "$user.status",
              [
                "BLOCKED",
                "CANCELLED"
              ]
            ]
          },
          "$$REMOVE",
          "$user.code"
        ]
      }
    }
  }



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB và khóa chính tổng hợp

  2. Làm thế nào để lập mô hình khi sử dụng Spring data mongo và Spring data elasticearch?

  3. Làm cách nào để quản lý các kết nối MongoDB trong ứng dụng web Node.js?

  4. Khóa đọc Mongodb

  5. Cập nhật / nâng cấp hàng loạt trong MongoDB?