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 menggabungkana
sendiri dengan akhiran"World"
). Perhatikan bagaimanaa
dimodifikasi secara langsung berdasarkan nilainya sendiri ($a
). -
Jangan lupa
{ multi: true }
, jika tidak, hanya dokumen pertama yang cocok yang akan diperbarui.