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

mgo:cách cập nhật một mảng cụ thể trong tài liệu

Bạn đã viết sai cách này xung quanh. Kết quả khớp về giá trị "id" kho thuộc phần "truy vấn" của bảng sao kê của bạn chứ không phải trong phần "cập nhật". Do đó, bạn không muốn UpdateId biến thể, nhưng Update vì nó cho phép lựa chọn truy vấn rộng hơn:

query := bson.M{
    "_id": bson.ObjectIdHex(productId),
    "location.warehouse": bson.ObjectIdHex(warehouseId)
}

update := bson.M{
    "$set": bson.M{
        "location.$.count": 4
    }
}

err := coll.Update(query,update)

Cũng lưu ý rằng "ký hiệu chấm" ở đây là tốt vì bộ chọn của bạn cho phần tử mảng chỉ là một trường số ít. Bạn thường chỉ cần $elemMatch khi có nhiều hơn một trường trong mảng để thiết lập đối sánh.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cách khôi phục kết xuất vào mongodb đang chạy của bạn

  2. GSSException:Không có thông tin xác thực hợp lệ được cung cấp (Cấp cơ chế:Không tìm thấy bất kỳ Kerberos tgt nào)

  3. Chạy di chuyển cơ sở dữ liệu (mongodb) với node.js

  4. Python Mogo ImportError:không thể nhập tên Kết nối

  5. mongo 3 bản sao trên chỉ mục duy nhất - dropDups