{
name: 'book',
tags: {
words: ['abc','123'],
lat: 33,
long: 22
}
}
假设这是一个文档。我如何从这个集合中的所有文档中完全删除“单词”?我希望所有的文件都没有“文字”:
{
name: 'book',
tags: {
lat: 33,
long: 22
}
}
{
name: 'book',
tags: {
words: ['abc','123'],
lat: 33,
long: 22
}
}
假设这是一个文档。我如何从这个集合中的所有文档中完全删除“单词”?我希望所有的文件都没有“文字”:
{
name: 'book',
tags: {
lat: 33,
long: 22
}
}
当前回答
在mongoDB shell中,这段代码可能会有帮助:
db.collection.update({}, {$unset: {fieldname: ""}} )
其他回答
对于monomapper来说,
文档:关闭 需要移除的字段:shutoff_type
Shutoff.collection。更新 ( {}, { '$ 设置' = >{“shutoff_type”:1}},:多= > true)
db.example.updateMany({},{"$unset":{"tags.words":1}})
我们还可以使用它来更新多个文档。
db.collection.updateMany({}, {$unset: {"fieldName": ""}})
updateMany要求每个文档都有一个匹配条件,因为我们传递的是{},它总是true。第二个参数使用$unset操作符删除每个文档中的必需字段。
您也可以使用3.4中的project在聚合中实现这一点
{$项目:{"标签。0}}
试试这个:如果你的收藏是“榜样”
db.example.update({}, {$unset: {words:1}}, false, true);
参考:
http://www.mongodb.org/display/DOCS/Updating#Updating-%24unset
更新:
上面的链接不再包含“$unset”。如果您想从集合中的所有文档中删除该字段,请确保添加{multi: true};否则,它只会从它找到的第一个匹配的文档中删除它。请参阅更新的文档:
https://docs.mongodb.com/manual/reference/operator/update/unset/
例子:
db.example.update({}, {$unset: {words:1}} , {multi: true});