MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Aggiungi una stringa alla fine di un campo esistente in MongoDB

A partire da Mongo 4.2 , db.collection.update() può accettare una pipeline di aggregazione, consentendo infine l'aggiornamento di un campo in base al suo valore corrente:

// { a: "Hello" }
db.collection.update(
  {},
  [{ $set: { a: { $concat: [ "$a", "World" ] } } }],
  { multi: true }
)
// { a: "HelloWorld" }
  • La prima parte {} è la query di corrispondenza, che filtra quali documenti aggiornare (in questo caso tutti i documenti).

  • La seconda parte [{ $set: { a: { $concat: [ "$a", "World" ] } } }] è la pipeline di aggregazione degli aggiornamenti (notare le parentesi quadre che indicano l'uso di una pipeline di aggregazione). $set (alias di $addFields ) è un nuovo operatore di aggregazione che in questo caso sostituisce il valore del campo (concatenando a stesso con il suffisso "World" ). Nota come a viene modificato direttamente in base al proprio valore ($a ).

  • Non dimenticare { multi: true } , altrimenti verrà aggiornato solo il primo documento corrispondente.