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" } ] }