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

Phần tử mảng cập nhật Mongo (trình điều khiển .NET 2.0)

Tôi đã mất một thời gian để tìm ra điều này vì nó dường như không được đề cập trong bất kỳ tài liệu chính thức nào (hoặc bất kỳ nơi nào khác). Tuy nhiên, tôi đã tìm thấy điều này trên trình theo dõi vấn đề của họ, trình theo dõi sự cố giải thích cách sử dụng toán tử vị trí $ với trình điều khiển C # 2.0.

Điều này sẽ làm những gì bạn muốn:

public void UpdateItemTitle(string agendaId, string itemId, string title){
    var filter = Builders<TempAgenda>.Filter.Where(x => x.AgendaId == agendaId && x.Items.Any(i => i.Id == itemId));
    var update = Builders<TempAgenda>.Update.Set(x => x.Items[-1].Title, title);
    var result = _collection.UpdateOneAsync(filter, update).Result;
}

Lưu ý rằng Item.Single() của bạn mệnh đề đã được thay đổi thành Item.Any() và chuyển sang định nghĩa bộ lọc.

[-1] hoặc .ElementAt(-1) dường như được đối xử đặc biệt (thực sự là mọi thứ <0) và sẽ được thay thế bằng toán tử vị trí $ .

Ở trên sẽ được dịch sang truy vấn này:

db.Agenda.update({ AgendaId: 1, Items.Id: 1 }, { $set: { Items.$.Title: "hello" } })


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. ClusterControl - Quản lý sao lưu nâng cao - MongoDB

  2. Triển khai API GraphQL với MongoDB Atlas và Máy chủ Apollo trên Koyeb

  3. Làm cách nào để tìm kiếm một đối tượng bằng ObjectId của nó trong bảng điều khiển mongo?

  4. Lập bản đồ tài liệu với lược đồ được xác định một phần

  5. Nhà điều hành đường ống tổng hợp MongoDB $ max