Comment remplacer des chaînes dans MongoDB (avec exemple)



Vous pouvez utiliser la syntaxe suivante pour remplacer une chaîne spécifique dans un champ dans MongoDB :

db.myCollection.updateMany(
  { fieldName: { $regex: /old/ } },
  [{
    $set: { fieldName: {
      $replaceOne: { input: "$fieldName", find: "old", replacement: "new" }
    }}
  }]
)

Cet exemple particulier remplace la chaîne « old » par « new » dans le champ intitulé « fieldName » au sein de la collection intitulée myCollection .

L’exemple suivant montre comment utiliser cette syntaxe en pratique avec une équipe de collection avec les documents suivants :

db.teams.insertOne({team: "Mavs", conference: "Western", points: 31})
db.teams.insertOne({team: "Spurs", conference: "Western", points: 22})
db.teams.insertOne({team: "Rockets", conference: "Western", points: 19})
db.teams.insertOne({team: "Celtics", conference: "Eastern", points: 26})
db.teams.insertOne({team: "Cavs", conference: "Eastern", points: 33})
db.teams.insertOne({team: "Nets", conference: "Eastern", points: 38})

Exemple : remplacer une chaîne dans MongoDB

Nous pouvons utiliser le code suivant pour remplacer la chaîne « Western » par « West » dans le champ conférence :

db.teams.updateMany(
  { conference: { $regex: /Western/ } },
  [{
    $set: { conference: {
      $replaceOne: { input: "$conference", find: "Western", replacement: "West" }
    }}
  }]
)

Voici à quoi ressemble désormais la collection mise à jour :

{ _id: ObjectId("620139494cb04b772fd7a8fa"),
  team: 'Mavs',
  conference: 'West',
  points: 31 }
{ _id: ObjectId("620139494cb04b772fd7a8fb"),
  team: 'Spurs',
  conference: 'West',
  points: 22 }
{ _id: ObjectId("620139494cb04b772fd7a8fc"),
  team: 'Rockets',
  conference: 'West',
  points: 19 }
{ _id: ObjectId("620139494cb04b772fd7a8fd"),
  team: 'Celtics',
  conference: 'Eastern',
  points: 26 }
{ _id: ObjectId("620139494cb04b772fd7a8fe"),
  team: 'Cavs',
  conference: 'Eastern',
  points: 33 }
{ _id: ObjectId("620139494cb04b772fd7a8ff"),
  team: 'Nets',
  conference: 'Eastern',
  points: 38 } 

Notez que chaque document qui contenait la chaîne « Western » dans le champ de conférence a désormais « West » dans le champ de conférence .

Tout document qui ne comportait pas la chaîne « Western » dans le champ de conférence conservait simplement sa chaîne d’origine.

Remarque : Vous pouvez trouver la documentation complète de la fonction $replaceOne ici .

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans MongoDB :

MongoDB : Comment vérifier si le champ contient une chaîne
MongoDB : Comment ajouter un nouveau champ
MongoDB : Comment supprimer un champ

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *