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

beberapa operator pembaruan mongo dalam satu pernyataan?

Beberapa pembaruan dapat dilakukan pada dokumen yang sama, selama pembaruan tersebut tidak bertentangan (karenanya kesalahan "memiliki mod yang bertentangan dalam pembaruan").

Karena "$push" :{"bugs" :[{"name":"bug1", "count":1}]} dan "$inc" :{"bugs.0.count" :1} keduanya mencoba untuk memodifikasi bagian yang sama dari dokumen (yaitu array "bug"), mereka bertentangan.

Beberapa pembaruan dapat digabungkan jika masing-masing memengaruhi bagian dokumen yang berbeda:

misalnya:

> db.test.drop()
true
> db.test.save({ "_id" : 1, "name" : "albert", "bugs" : [ ] })
> db.test.update({"name":"albert"}, {"$pushAll" : {"bugs" : [{"name":"bug1", "count":1}]}, "$inc" : {"increment" : 1}, $set:{"note":"Here is another field."}})
> db.test.find()
{ "_id" : 1, "bugs" : [ { "name" : "bug1", "count" : 1 } ], "increment" : 1, "name" : "albert", "note" : "Here is another field." }
> 

Pembaruan berisi tiga operasi berbeda ($pushAll, $inc, dan $set), tetapi dapat diselesaikan dengan sukses, karena setiap operasi memengaruhi bagian dokumen yang berbeda.

Saya menyadari bahwa ini bukanlah apa yang Anda harapkan, tetapi mudah-mudahan ini akan memberi Anda sedikit pemahaman yang lebih baik tentang cara kerja pembaruan, dan mungkin memberikan beberapa gagasan tentang bagaimana pembaruan dan/atau dokumen Anda dapat direstrukturisasi untuk melakukan fungsi yang Anda inginkan. aplikasi membutuhkan. Semoga berhasil.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. NestJS:Cara Menerapkan Otentikasi Pengguna Berbasis Sesi

  2. Terhubung ke database tertentu secara default di mongodb

  3. MongoDB $setIntersection

  4. Cara menghapus semua item dari koleksi MongoDB

  5. Menghapus kunci/nilai dari entri MongoDB yang ada