MongoDB - Comment supprimer un champ du document

MongoDB - Comment supprimer un champ du document

Cet article MongoDB vous montre comment supprimer un champ du document et du tableau.

1. Supprimer un champ des documents

Exemple de document, et vous souhaitez supprimer le champ «affLink».

domain.json

{
      "_id" : 1,
      "domain" : "example.com",
      "affLink" : "abc"
}

Pour supprimer un champ de tous les documents, définissez{multi: true}, sinon seul le champ du premier document correspondant sera supprimé.

db.domain.update({},{$unset: {affLink:1}},{multi: true});

Sortie

domain.json

{
      "_id" : 1,
      "domain" : "example.com"
}

2. Supprimer un champ du tableau

Avant MongoDB 2.6, il n'y a toujours pas de fonction officielle pour supprimer un champ du tableau. Pour y remédier, vous devez écrire un script:

person.json

{
   _id: 1,
   name: "example",
   addresses: [
    {
      street: "99 The Rock Street",
      city: "Boston",
      state: "MA",
      zip: "66666"
    },
    {
      street: "88 WWF Street",
      city: "Boston",
      state: "MA",
      zip: "77777"
    }
   ]
}

Faites une boucle sur les documents et supprimez le champ «état» du tableau un par un.

 db.person.find({}).forEach(function(doc) {

    var address = doc.addresses;
    for(var i = 0; i < address.length; ++i) {
        var x = address[i];
        delete (x["state"]);

    }
    db.person.save(doc);

});

Sortie

person.json

{
   _id: 1,
   name: "example",
   addresses: [
    {
      street: "99 The Rock Street",
      city: "Boston",
      zip: "66666"
    },
    {
      street: "88 WWF Street",
      city: "Boston",
      zip: "77777"
    }
   ]
}