MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Ajouter une chaîne à la fin d'un champ existant dans MongoDB

Démarrage de Mongo 4.2 , db.collection.update() peut accepter un pipeline d'agrégation, permettant enfin la mise à jour d'un champ en fonction de sa valeur actuelle :

// { a: "Hello" }
db.collection.update(
  {},
  [{ $set: { a: { $concat: [ "$a", "World" ] } } }],
  { multi: true }
)
// { a: "HelloWorld" }
  • La première partie {} est la requête de correspondance, filtrant les documents à mettre à jour (dans ce cas, tous les documents).

  • La deuxième partie [{ $set: { a: { $concat: [ "$a", "World" ] } } }] est le pipeline d'agrégation de mise à jour (notez les crochets signifiant l'utilisation d'un pipeline d'agrégation). $set (alias de $addFields ) est un nouvel opérateur d'agrégation qui dans ce cas remplace la valeur du champ (en concaténant a lui-même avec le suffixe "World" ). Notez comment a est modifié directement en fonction de sa propre valeur ($a ).

  • N'oubliez pas { multi: true } , sinon seul le premier document correspondant sera mis à jour.