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

C # MongoDB - Làm cách nào để thêm và xóa mục cho nhiều phần tử mảng lồng nhau?

Bạn có thể thử một cái gì đó như bên dưới trong trình điều khiển 2.5 với phiên bản 3.6.

Tìm tài liệu bằng filter tiêu chí và update bao gồm từ định danh vị trí mới để cập nhật nhiều phần tử trong mảng bên trong UpdateOne phương pháp.

$ [] cập nhật tất cả các thẻ Tags mảng để bao gồm mục mới trong tất cả Categories mảng. Nó hoạt động như một trình giữ chỗ để cập nhật tất cả các phần tử trong mảng.

Đẩy

var filter = Builders<Product>.Filter.Eq("Id", "123");
var update = Builders<Product>.Update.Push("Tags.$[].Categories", "Item 3");
var result = collection.UpdateOne(filter, update);

Kéo

var filter = Builders<Product>.Filter.Eq("Id", "123");
var update = Builders<Product>.Update.Pull("Tags.$[].Categories", "Item 3");
var result = collection.UpdateOne(filter, update);

Thông tin bổ sung:

Bạn có thể đặt ArrayFilters các tùy chọn trong UpdateOptions để áp dụng tiêu chí truy vấn trên mảng lồng nhau để kiểm soát những phần tử cần cập nhật.

Ví dụ:cập nhật tất cả các Danh mục trong mảng Thẻ trong đó mỗi thẻ có Name tên.

var filter = Builders<Product>.Filter.Eq("Id", "123");
var update = Builders<Product>.Update.Push("Tags.$[t].Categories", "Item 3");
var arrayFilters = new List<ArrayFilterDefinition>{ new ArrayFilterDefinition(new BsonDocument("t.Name", "name")) };
var updateOptions = new UpdateOptions({ArrayFilters = arrayFilters});
var result = collection.UpdateOne(filter, update, updateOptions);



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cách tra cứu $ bằng cách tránh các giá trị null trong mongodb tổng hợp

  2. Làm cách nào để lấy N bản ghi cuối cùng trong mongodb?

  3. Cách tổng hợp theo nhóm và sắp xếp chính xác

  4. Gọi lại Mongoose.js instance.save () không kích hoạt

  5. Node.js + MongoDB:MongoError:con trỏ bị giết hoặc hết thời gian chờ