Memulai Mongo 4.2 , db.collection.update() dapat menerima saluran agregasi, akhirnya mengizinkan pembaruan bidang berdasarkan nilainya saat ini:
// { a: "Hello" }
db.collection.update(
{},
[{ $set: { a: { $concat: [ "$a", "World" ] } } }],
{ multi: true }
)
// { a: "HelloWorld" }
-
Bagian pertama
{}adalah kueri pencocokan, memfilter dokumen mana yang akan diperbarui (dalam hal ini semua dokumen). -
Bagian kedua
[{ $set: { a: { $concat: [ "$a", "World" ] } } }]adalah pipa agregasi pembaruan (perhatikan tanda kurung siku yang menandakan penggunaan pipa agregasi).$set(alias$addFields) adalah operator agregasi baru yang dalam hal ini menggantikan nilai bidang (dengan menggabungkanasendiri dengan akhiran"World"). Perhatikan bagaimanaadimodifikasi secara langsung berdasarkan nilainya sendiri ($a). -
Jangan lupa
{ multi: true }, jika tidak, hanya dokumen pertama yang cocok yang akan diperbarui.