Uruchamianie Mongo 4.2 , db.collection.update() może zaakceptować potok agregacji, ostatecznie umożliwiając aktualizację pola na podstawie jego bieżącej wartości:
// { a: "Hello" }
db.collection.update(
{},
[{ $set: { a: { $concat: [ "$a", "World" ] } } }],
{ multi: true }
)
// { a: "HelloWorld" }
-
Pierwsza część
{}to zapytanie dopasowujące, filtrujące dokumenty do zaktualizowania (w tym przypadku wszystkie dokumenty). -
Druga część
[{ $set: { a: { $concat: [ "$a", "World" ] } } }]to potok agregacji aktualizacji (zwróć uwagę na nawiasy kwadratowe oznaczające użycie potoku agregacji).$set(alias$addFields) to nowy operator agregacji, który w tym przypadku zastępuje wartość pola (poprzez połączenieasię z sufiksem"World"). Zwróć uwagę, jakajest modyfikowany bezpośrednio na podstawie własnej wartości ($a). -
Nie zapomnij
{ multi: true }, w przeciwnym razie tylko pierwszy pasujący dokument zostanie zaktualizowany.