MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Memperbarui objek di dalam array dengan PyMongo

Gunakan "notasi titik" dan operator posisi di bagian pembaruan. Ubah juga masukan Anda agar sesuai dengan formulir "notasi titik" untuk representasi kunci:

# 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 }
)

Jadi itu akan mengubah $ ke posisi elemen yang cocok sebenarnya dari bagian kueri pembaruan. Elemen larik yang cocok akan diperbarui dan menggunakan "notasi titik" hanya bidang yang disebutkan yang akan terpengaruh.

Tidak tahu apa yang dimaksud dengan "layanan" dalam konteks ini dan saya hanya memperlakukannya sebagai "kesalahan transkripsi" karena Anda jelas-jelas mencoba mencocokkan elemen array pada posisinya.

Itu bisa lebih bersih, tetapi ini akan memberi Anda gambaran umum.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. docker-compose menekan keluaran mongodb

  2. Batasi jumlah nilai dalam bidang menggunakan MongoDB

  3. MongoDb BSON menyimpan Tanggal dalam waktu UTC

  4. Luwak memperbarui banyak dokumen tidak memperbarui apa pun

  5. Bagaimana Memodelkan sistem pemungutan suara suka dengan MongoDB