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

MongoDB:cập nhật một mảng trong mảng

Sau một số nghiên cứu thêm, có vẻ như cách duy nhất để sửa đổi mảng trong một mảng là với một số logic bên ngoài để tìm chỉ mục của phần tử tôi muốn thay đổi. Thực hiện điều này sẽ yêu cầu mọi thay đổi phải có truy vấn tìm để xác định chỉ mục và sau đó là truy vấn cập nhật để sửa đổi mảng. Đây có vẻ không phải là cách tốt nhất.

Liên kết đến một trường hợp JIRA 2010 yêu cầu nhiều phần tử vị trí ...

Vì tôi sẽ luôn biết ID của đối tượng địa lý, tôi đã chọn sửa đổi cấu trúc tài liệu của mình.

     {
    "_id" : "v5y8nggzpja5Pa7YS",
    "name" : "Example",
    "display_name" : "EX1",
    "groups" : [
        {
            "_id" : "s86CbNBdqJnQ5NWaB",
            "name" : "Group1",
            "display_name" : "G1",
            "features" : {
               "1" : {
                       type     : "blog",
                       name     : "[blog name]"
                       owner_id : "ga5YgvP5yza7pj8nS"
               }, 
            }
         },
     ]
 },

Với cấu trúc mới, các thay đổi có thể được thực hiện theo cách sau:

db.orgs.update({_id: "v5y8nggzpja5Pa7YS", "groups._id": "s86CbNBdqJnQ5NWaB"}, {$set: {"groups.$.features.1.name":"Blog Test 1"}});



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Làm thế nào để xóa tài liệu bằng cách truy vấn hiệu quả trong mongo?

  2. Tổng hợp MongoDB trên một phạm vi

  3. Cách in kết quả tối thiểu trong MongoDB

  4. Làm cách nào để sử dụng Map / Reduce trong MongoDB?

  5. Lỗi cập nhật MongoDB 2.6