如何删除Mongo中不推荐使用的字段?

我已经从文档定义中删除了一些字段。 我想删除所有收集文件的这个字段。 我该怎么做?

尝试:

db.collection.update( { '<field>': { '$exists': true } }, // Query { '$unset': { '<field>': true } }, // Update false, // Upsert true // Multi-update ) 

其中field是您的弃用字段, collection是从中删除的集合。

一般更新命令的forms是db.collection.update( criteria, objNew, upsert, multi )falsetrue结尾参数将禁用upsert模式并启用多重更新,以便查询更新集合中的所有文档(而不仅仅是第一个匹配项)。

MongoDB 2.2+更新

您现在可以提供一个JSON对象,而不是位置参数,用于upsert和multi。

 db.collection.update( { '<field>': { '$exists': true } }, // Query { '$unset': { '<field>': true } }, // Update { 'multi': true } // Options ) 

只是做这样的事情

 db.people.find().forEach(function(x) { delete x.badField; db.people.save(x); }) 

oooh $unset 在这里使用update()给出的答案也非常棒。