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

Mengganti dokumen yang disematkan dalam array di MongoDB

Anda menggunakan pola "array objek". Anda dapat menggunakan operator posisi, seharusnya terlihat seperti ini:

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

Dalam pengalaman saya, pola "array objek" tidak optimal jika objek memiliki ID alami. Dalam kasus Anda, ini dapat dimodelkan sebagai berikut:

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

Dalam hal ini Anda dapat menggunakan notasi titik untuk memperbarui item yang Anda inginkan dengan mudah.

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. 4 Cara Menghapus Dokumen di MongoDB

  2. Mencari nilai bidang apa pun di MongoDB tanpa menamainya secara eksplisit

  3. Kunci asing di mongo?

  4. Peningkatan otomatis di MongoDB untuk menyimpan urutan ID Pengguna Unik

  5. Bagaimana Anda terhubung ke replika dari shell MongoDB?