Starter Mongo 4.2 , db.collection.update() kan acceptere en aggregeringspipeline og endelig tillade opdatering af et felt baseret på dets aktuelle værdi:
// { a: "Hello" }
db.collection.update(
{},
[{ $set: { a: { $concat: [ "$a", "World" ] } } }],
{ multi: true }
)
// { a: "HelloWorld" }
-
Den første del
{}er matchforespørgslen, der filtrerer, hvilke dokumenter der skal opdateres (i dette tilfælde alle dokumenter). -
Den anden del
[{ $set: { a: { $concat: [ "$a", "World" ] } } }]er opdaterings-aggregeringspipeline (bemærk de firkantede parenteser, der angiver brugen af en aggregeringspipeline).$set(alias for$addFields) er en ny aggregeringsoperator, som i dette tilfælde erstatter feltets værdi (ved at sammenkædeasig selv med suffikset"World"). Bemærk hvordanaer modificeret direkte baseret på sin egen værdi ($a). -
Glem ikke
{ multi: true }, ellers vil kun det første matchende dokument blive opdateret.