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
