J'ai supprimé certains champs de la définition du document. Je veux supprimer ce champ dans tous les documents de la collection. Comment puis-je le faire ?
Réponses
Trop de publicités?Essayez :
db.collection.update(
{ '<field>': { '$exists': true } }, // Query
{ '$unset': { '<field>': true } }, // Update
false, // Upsert
true // Multi-update
)
donde field
est votre champ déprécié et collection
est la collection d'où il a été retiré.
La commande générale de mise à jour est de la forme db.collection.update( criteria, objNew, upsert, multi )
. Le site false
y true
Les arguments de queue désactivent le mode upsert et activent la mise à jour multiple afin 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 objet JSON au lieu d'arguments positionnels pour upsert et multi.
db.collection.update(
{ '<field>': { '$exists': true } }, // Query
{ '$unset': { '<field>': true } }, // Update
{ 'multi': true } // Options
)
Faites juste quelque chose comme ça
db.people.find().forEach(function(x) {
delete x.badField;
db.people.save(x);
})
oooh la $unset
réponse que quelqu'un a donnée en utilisant update()
aquí est assez génial aussi.