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łączeniea
się z sufiksem"World"
). Zwróć uwagę, jaka
jest modyfikowany bezpośrednio na podstawie własnej wartości ($a
). -
Nie zapomnij
{ multi: true }
, w przeciwnym razie tylko pierwszy pasujący dokument zostanie zaktualizowany.