Стартиране на Mongo 4.2
, db.collection.update()
може да приеме конвейер за агрегиране, като накрая позволява актуализирането на поле въз основа на текущата му стойност:
// { a: "Hello" }
db.collection.update(
{},
[{ $set: { a: { $concat: [ "$a", "World" ] } } }],
{ multi: true }
)
// { a: "HelloWorld" }
-
Първата част
{}
е заявката за съвпадение, която филтрира кои документи да се актуализират (в този случай всички документи). -
Втората част
[{ $set: { a: { $concat: [ "$a", "World" ] } } }]
е тръбопроводът за обновяване на агрегиране (обърнете внимание на квадратните скоби, означаващи използването на конвейер за агрегиране).$set
(псевдоним на$addFields
) е нов оператор за агрегиране, който в този случай замества стойността на полето (чрез конкатениране наa
себе си с наставката"World"
). Обърнете внимание какa
се променя директно въз основа на собствената си стойност ($a
). -
Не забравяйте
{ multi: true }
, в противен случай само първият съответстващ документ ще бъде актуализиран.