如何删除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 )
。 false
和true
结尾参数将禁用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()
给出的答案也非常棒。