Vanaf Mongo 4.2
, db.collection.update()
kan een aggregatiepijplijn accepteren, waardoor een veld eindelijk kan worden bijgewerkt op basis van de huidige waarde:
// { a: "Hello" }
db.collection.update(
{},
[{ $set: { a: { $concat: [ "$a", "World" ] } } }],
{ multi: true }
)
// { a: "HelloWorld" }
-
Het eerste deel
{}
is de match-query, die filtert welke documenten moeten worden bijgewerkt (in dit geval alle documenten). -
Het tweede deel
[{ $set: { a: { $concat: [ "$a", "World" ] } } }]
is de update-aggregatiepijplijn (let op de vierkante haakjes die het gebruik van een aggregatiepijplijn aangeven).$set
(alias van$addFields
) is een nieuwe aggregatie-operator die in dit geval de waarde van het veld vervangt (doora
samen te voegen zelf met het achtervoegsel"World"
). Merk op hoea
wordt rechtstreeks aangepast op basis van zijn eigen waarde ($a
). -
Vergeet
{ multi: true }
niet , anders wordt alleen het eerste overeenkomende document bijgewerkt.