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

Chèn hoặc cập nhật tài liệu con một cách an toàn trong MongoDB

Bạn đã xem AddToSet chưa , nếu bạn sử dụng điều này kết hợp với chức năng cập nhật thay vì chức năng thay thế, nó sẽ kiểm soát tốt hơn tính nguyên tử của bạn.

var updateBuilder = Builders<Item>.Update.AddToSet(items => items.SubItems, new SubItem());

collection.UpdateOne(itemFilter, updateBuilder);

Như vậy trong trường hợp của bạn.

    public Task Save(string itemId, SubItem subItem)
    {
        var itemFilter = Builders<Item>.Filter.Eq(v => v.Id, itemId);
        var collection = _db.GetCollection<Item>("Items");

        var updateBuilder = Builders<Item>.Update.AddToSet(items => items.SubItems, subItem);

        collection.UpdateOneAsync(itemFilter, updateBuilder, new UpdateOptions() { IsUpsert = true }).Wait();
    }



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tìm tất cả các đối tượng trong bộ sưu tập Java Mongodb

  2. Pymongo có tích hợp các quy tắc xác thực không?

  3. Lỗi kết nối MongoDB Atlas không kết nối được với máy chủ ...

  4. Cách tìm nạp bản ghi từ mongodb bằng trường _id và hiển thị bản ghi đã tìm nạp trong bảng điều khiển bằng java

  5. Các trường bổ sung Mongo dbref không hiển thị trong mongoshell. Làm thế nào để hiển thị chúng?