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

Thay thế tài liệu nhúng trong mảng trong MongoDB

Bạn đang sử dụng mẫu "mảng đối tượng". Bạn có thể sử dụng toán tử vị trí, nó sẽ trông giống như sau:

coll.update( {'_id':'2', 'users._id':'2'}, {$set:{'users.$':{ "_id":2,"name":"name6",... }}}, false, true)

Theo kinh nghiệm của tôi, mẫu "mảng đối tượng" không tối ưu nếu các đối tượng có ID tự nhiên. Trong trường hợp của bạn, điều này có thể được mô hình như sau:

{
  "_id" : "2",
  "users" : 
    { "1" : { "name" : "name1", "xyz..." : "xyz1..." }, 
      "2" : { "name" : "name2", "xyz..." : "xyz2..." }
    }
  "name" : "main name"
}

Trong trường hợp này, bạn có thể sử dụng ký hiệu dấu chấm để dễ dàng cập nhật mục bạn muốn.

var newValue = {  "name" : "name6", "xyz..." : "xyz5...", "morefields..." : "fields..." };
coll.update({_id: 2}, { $set: { "users.2" : newValue } });



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongo đẩy đến mảng bên trong mảng

  2. Cách cải thiện hiệu suất chèn MongoDB

  3. MongoDB hoặc CouchDB - phù hợp để sản xuất?

  4. Điền các ngày còn thiếu trong hồ sơ

  5. cách nhóm trong mongoDB và trả về tất cả các trường trong kết quả