此MongoDB文章向您展示如何从文档和数组中删除字段。
1.从文档中删除一个字段
文档样本,并且您要删除“ affLink”字段。
domain.json
{
"_id" : 1,
"domain" : "mkyong.com",
"affLink" : "abc"
}
要从所有文档中删除字段,请设置{multi: true}
,否则将仅删除第一个匹配文档的字段。
db.domain.update({},{$unset: {affLink:1}},{multi: true});
输出量
domain.json
{
"_id" : 1,
"domain" : "mkyong.com"
}
2.从数组中删除一个字段
在MongoDB 2.6之前,尚无正式功能可从阵列中删除字段。 要修复它,您需要编写一个脚本:
person.json
{
_id: 1,
name: "mkyong",
addresses: [
{
street: "99 The Rock Street",
city: "Boston",
state: "MA",
zip: "66666"
},
{
street: "88 WWF Street",
city: "Boston",
state: "MA",
zip: "77777"
}
]
}
循环浏览文档,并从数组中逐一删除字段“状态”。
db.person.find({}).forEach(function(doc) {
var address = doc.addresses;
for(var i = 0; i < address.length; ++i) {
var x = address[i];
delete (x["state"]);
}
db.person.save(doc);
});
输出量
person.json
{
_id: 1,
name: "mkyong",
addresses: [
{
street: "99 The Rock Street",
city: "Boston",
zip: "66666"
},
{
street: "88 WWF Street",
city: "Boston",
zip: "77777"
}
]
}
参考文献
翻译自: https://mkyong.com/mongodb/mongodb-how-to-remove-a-field-from-document/