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 (doorasamen te voegen zelf met het achtervoegsel"World"). Merk op hoeawordt rechtstreeks aangepast op basis van zijn eigen waarde ($a). -
Vergeet
{ multi: true }niet , anders wordt alleen het eerste overeenkomende document bijgewerkt.