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

Cập nhật phần tử mảng lồng nhau trong mongodb

Yêu cầu vài lần chỉnh sửa trên truy vấn, nếu không thì nó gần như ở đó. Cập nhật không hoạt động vì $elemMatch cho attributeSet (mảng tài liệu) sẽ xảy ra trên id thuộc tính của các tài liệu đó để lọc chứ không phải trên propertySet.id , nó sẽ không hình dung nó là gì. Và elemMatch lồng nhau là không bắt buộc, chỉ cần sử dụng ký hiệu dấu chấm .

Để gỡ lỗi, bạn có thể dùng thử bằng truy vấn tìm.

Truy vấn (Shell):

db.collection.findOneAndUpdate(
  {
    _id: settingsToBeUpdated._id,
    attributeSet: {
      $elemMatch: {
        id: attributeSetId,
        "attributes.id": id
      }
    }
  },
  {
    $set: {
      "attributeSet.$[as].attributes.$[a].attributeName":
        attributeDto.attributeName,
      "attributeSet.$[as].attributes.$[a].defaultValue":
        attributeDto.defaultValue,
      "attributeSet.$[as].attributes.$[a].isRequired": attributeDto.isRequired
    }
  },
  {
    arrayFilters: [{ "as.id": attributeSetId }, { "a.id": id }],
    returnNewDocument: true
  }
);



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tại sao MongoDB không phản hồi trong quá trình kiểm tra tải?

  2. Làm cách nào để tôi có thể sắp xếp vào các giá trị null được sắp xếp cuối cùng trong mongodb?

  3. Hadoop HDFS Map Giảm đầu ra thành MongoDb

  4. Có chạy mongoskin chỉ với mongodb phiên bản 1.4 trở lên không?

  5. Tắt tính năng lọc từ dừng trong tìm kiếm văn bản MongoDB