J’ai supprimé certains champs de la définition du document. Je veux supprimer ce champ dans tous les documents de collection. Comment puis-je le faire?
Essayer:
db.collection.update( { '': { '$exists': true } }, // Query { '$unset': { ' ': true } }, // Update false, // Upsert true // Multi-update )
où field
est votre champ obsolète et la collection
est la collection à partir de laquelle elle a été supprimée.
La commande de mise à jour générale est de la forme db.collection.update( criteria, objNew, upsert, multi )
. Les arguments de fuite false
et true
désactivent le mode de sauvegarde et activent la mise à jour multiple pour que la requête mette à jour tous les documents de la collection (pas seulement la première correspondance).
Mise à jour pour MongoDB 2.2+
Vous pouvez maintenant fournir un object JSON à la place des arguments de position pour upsert et multi.
db.collection.update( { '': { '$exists': true } }, // Query { '$unset': { ' ': true } }, // Update { 'multi': true } // Options )
juste faire quelque chose comme ça
db.people.find().forEach(function(x) { delete x.badField; db.people.save(x); })
oooh la réponse $unset
quelqu’un a donnée avec update()
ici est vraiment géniale.