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