Comment supprimer des champs obsolètes dans Mongo?

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 ) 

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.