MongoDB : Comment ajouter un nouveau champ dans une collection



Vous pouvez utiliser les méthodes suivantes pour ajouter un nouveau champ à chaque document d’une collection dans MongoDB :

Méthode 1 : ajouter un nouveau champ sans valeurs

db.collection.updateMany({}, {$set:{"new_field": null}})

Méthode 2 : ajouter un nouveau champ avec une valeur spécifique

db.collection.updateMany({}, {$set:{"new_field": 10}}) 

Méthode 3 : ajouter un nouveau champ en utilisant les valeurs des champs existants

db.collection.updateMany(
    {},
    [
        {"$set": {"name": { "$concat": ["$field1", " ", "$field2"]}}}
    ]
)

Les exemples suivants montrent comment utiliser chaque méthode avec une équipe de collecte avec les documents suivants :

db.teams.insertOne({team: "Mavs", position: "Guard", points: 31})
db.teams.insertOne({team: "Spurs", position: "Guard", points: 22})
db.teams.insertOne({team: "Rockets", position: "Center", points: 19})
db.teams.insertOne({team: "Warriors", position: "Forward", points: 26})
db.teams.insertOne({team: "Cavs", position: "Guard", points: 33})

Exemple 1 : ajouter un nouveau champ sans valeurs

Nous pouvons utiliser le code suivant pour ajouter un nouveau champ appelé « rebonds » avec une valeur nulle à chaque document existant de la collection :

db.teams.updateMany({}, {$set:{"rebounds": null}})

Nous pouvons utiliser la requête suivante pour afficher les premiers documents mis à jour :

db.teams.find().limit(3)

Cette requête renvoie les documents suivants :

{ _id: ObjectId("6189325896cd2ba58ce928e5"),
  team: 'Mavs',
  position: 'Guard',
  points: 31,
  rebounds: null }

{ _id: ObjectId("6189325896cd2ba58ce928e6"),
  team: 'Spurs',
  position: 'Guard',
  points: 22,
  rebounds: null }

{ _id: ObjectId("6189325896cd2ba58ce928e7"),
  team: 'Rockets',
  position: 'Center',
  points: 19,
  rebounds: null }

Notez que chaque document possède désormais un champ appelé « rebonds » avec une valeur nulle.

Exemple 2 : ajouter un nouveau champ avec une valeur spécifique

Nous pouvons utiliser le code suivant pour ajouter un nouveau champ appelé « rebonds » avec une valeur de 10 à chaque document existant de la collection :

db.teams.updateMany({}, {$set:{"rebounds": 10}})

Nous pouvons utiliser la requête suivante pour afficher les premiers documents mis à jour :

db.teams.find().limit(3)

Cette requête renvoie les documents suivants :

{ _id: ObjectId("6189325896cd2ba58ce928e5"),
  team: 'Mavs',
  position: 'Guard',
  points: 31,
  rebounds: 10 }

{ _id: ObjectId("6189325896cd2ba58ce928e6"),
  team: 'Spurs',
  position: 'Guard',
  points: 22,
  rebounds: 10 }

{ _id: ObjectId("6189325896cd2ba58ce928e7"),
  team: 'Rockets',
  position: 'Center',
  points: 19,
  rebounds: 10 }

Notez que chaque document possède désormais un champ appelé « rebonds » avec une valeur de 10.

Exemple 3 : Ajouter un nouveau champ à l’aide des valeurs des champs existants

Nous pouvons utiliser le code suivant pour ajouter un champ appelé « nom » dont la valeur est une concaténation des champs existants « équipe » et « position » :

db.teams.updateMany(
    {},
    [
        {"$set": {"name": { "$concat": ["$team", " ", "$position"]}}}
    ]
)

Nous pouvons utiliser la requête suivante pour afficher les premiers documents mis à jour :

db.teams.find().limit(3)

Cette requête renvoie les documents suivants :

{ _id: ObjectId("618934cb96cd2ba58ce928ea"),
  team: 'Mavs',
  position: 'Guard',
  points: 31,
  name: 'Mavs Guard' }

{ _id: ObjectId("618934cb96cd2ba58ce928eb"),
  team: 'Spurs',
  position: 'Guard',
  points: 22,
  name: 'Spurs Guard' }

{ _id: ObjectId("618934cb96cd2ba58ce928ec"),
  team: 'Rockets',
  position: 'Center',
  points: 19,
  name: 'Rockets Center' }

Notez que chaque document possède désormais un champ appelé « nom » dont la valeur est une concaténation des champs « équipe » et « poste ».

Remarque : Vous pouvez trouver la documentation complète de la fonction updateMany() ici .

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans MongoDB :

MongoDB : Comment renommer les champs
MongoDB : Comment supprimer des champs
MongoDB : Comment vérifier si le champ contient une chaîne
MongoDB : Comment interroger avec une plage de dates
MongoDB : Comment interroger avec une expression régulière « Like »

Ajouter un commentaire

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