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

Pembaruan MongoDB dengan syarat

Memulai Mongo 4.2 , db.collection.update() dapat menerima saluran agregasi, akhirnya mengizinkan pembaruan/pembuatan bidang berdasarkan bidang lain:

// { a: "Hello", b: "World" }
// { a: "Olleh", b: "Dlrow" }
db.collection.update(
  {},
  [ { $set: { active: { $eq: [ "$a", "Hello" ] } } } ],
  { multi: true }
)
// { a: "Hello", b: "World", active: true  }
// { a: "Olleh", b: "Dlrow", active: false }
  • Bagian pertama {} adalah kueri kecocokan, memfilter dokumen mana yang akan diperbarui (dalam kasus kami semua dokumen).

  • Bagian kedua [ { $set: { active: { $eq: [ "$a", "Hello" ] } } } ] adalah pipa agregasi pembaruan (perhatikan tanda kurung siku yang menandakan penggunaan pipa agregasi). $set adalah operator agregasi baru dan alias dari $addFields . Kemudian operator agregasi apa pun dapat digunakan dalam $set panggung; dalam kasus kami pemeriksaan kesetaraan bersyarat yang bergantung pada nilai yang akan digunakan untuk active baru lapangan.

  • Jangan lupa { multi: true } , jika tidak, hanya dokumen pertama yang cocok yang akan diperbarui.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. jenis kustom luwak/mongodb

  2. Apa kesalahan Mongoose Cast to ObjectId gagal untuk nilai XXX di jalur _id?

  3. Agregasi Mongo Cocokkan beberapa nilai

  4. Apakah ada alat untuk memperkirakan ukuran indeks di MongoDB?

  5. Kueri MongoDB dengan $and dan Multiple $or