Mongo 4.2
を開始 、db.collection.update()
集約パイプラインを受け入れることができ、最終的に現在の値に基づいてフィールドを更新できるようになります:
// { a: "Hello" }
db.collection.update(
{},
[{ $set: { a: { $concat: [ "$a", "World" ] } } }],
{ multi: true }
)
// { a: "HelloWorld" }
-
最初の部分
{}
一致クエリであり、更新するドキュメント(この場合はすべてのドキュメント)をフィルタリングします。 -
2番目の部分
[{ $set: { a: { $concat: [ "$a", "World" ] } } }]
は更新アグリゲーションパイプラインです(アグリゲーションパイプラインの使用を示す角かっこに注意してください)。$set
($addFields
のエイリアス )は新しい集計演算子であり、この場合はフィールドの値を置き換えます(a
を連結することにより) 接尾辞"World"
が付いたそれ自体 )。a
に注意してください 独自の値($a
)に基づいて直接変更されます 。 -
{ multi: true }
を忘れないでください それ以外の場合は、最初に一致するドキュメントのみが更新されます。