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

Cách cập nhật mục từ mảng được lồng trong mảng

Trong MongoDB 4.0, bạn có thể sử dụng $[<identifier>] cú pháp và thêm ArrayFilters tới UpdateOptions tham số:

var filter = Builders<Model>.Filter.Empty;
var update = Builders<Model>.Update.Set("Options.$[option].Inventory.$[inventory].Name", "New name");

var arrayFilters = new List<ArrayFilterDefinition>();
ArrayFilterDefinition<BsonDocument> optionsFilter = new BsonDocument("option.Id", new BsonDocument("$eq", optionId));
ArrayFilterDefinition<BsonDocument> inventoryFilter = new BsonDocument("inventory.Id", new BsonDocument("$eq", inventoryId));
arrayFilters.Add(optionsFilter);
arrayFilters.Add(inventoryFilter);

var updateOptions = new UpdateOptions { ArrayFilters = arrayFilters };

var result = DefaultCollection.UpdateOne(filter, update, updateOptions);

Điều đó sẽ xác định duy nhất Inventory mục cần được cập nhật bên trong Options




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cập nhật trường tài liệu trong mongo dựa trên giá trị của trường khác

  2. LỖI:quy trình con không thành công, đã thoát với lỗi số 48

  3. MongoDB / Express - Cách chuyển đổi cơ sở dữ liệu sau khi kết nối qua connect ()

  4. Gặp khó khăn khi sử dụng mẫu trình điều khiển MongoDb C # ()

  5. Điều kiện truy vấn MongoDb khi so sánh 2 trường