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

Cập nhật một đối tượng bên trong một mảng với PyMongo

Sử dụng "ký hiệu dấu chấm" và toán tử vị trí trong phần cập nhật. Đồng thời chuyển đổi đầu vào của bạn để phù hợp với dạng "ký hiệu dấu chấm" cho biểu diễn khóa:

# Transform to "dot notation" on explicit field
for key in data:
    data["mylist.$." + key] = data[key]
    del data[key]

# Basically makes
# { 
#      "mylist.$.data1": "new lorem",
#      "mylist.$.data3": "goldeneye"
# }

db.testing.find_and_modify(
    query = {"_id": "12345", 'mylist.nested_id' : "1"},
    update = { "$set": data }
)

Vì vậy, điều đó sẽ chuyển vị $ đến vị trí phần tử phù hợp thực tế từ phần truy vấn của bản cập nhật. Phần tử mảng phù hợp sẽ được cập nhật và việc sử dụng "ký hiệu dấu chấm" chỉ các trường được đề cập sẽ bị ảnh hưởng.

Không biết "dịch vụ" có nghĩa là gì trong ngữ cảnh này và tôi chỉ coi đó là "lỗi phiên âm" vì rõ ràng bạn đang cố gắng khớp một phần tử mảng ở vị trí.

Điều đó có thể rõ ràng hơn, nhưng điều này sẽ cung cấp cho bạn ý tưởng chung.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cách / địa điểm được đề xuất để tạo chỉ mục trên bộ sưu tập MongoDB cho ứng dụng web

  2. Làm thế nào để chuyển đổi một chuỗi với các ký tự trong int cho toàn bộ bộ sưu tập?

  3. Thành viên mới không thể tải JSON

  4. Số nhóm 2 mục đối tượng mảng mongodb

  5. MongoDB:Làm cách nào để cập nhật một thành phần con duy nhất trong một mảng, được tham chiếu bởi chỉ mục trong mảng?