【发布时间】:2017-02-12 02:52:57
【问题描述】:
google 返回的第一个答案是:How do I remove a field completely from Mongo?
以及文档:https://docs.mongodb.com/manual/reference/operator/update/unset/
我试过了:
db.amazon_rev.update({}, {$unset: {'meta.asin': true}}, false, true)
db.amazon_rev.update({}, {$unset: {'meta.asin':1}}, false, true)
db.amazon_rev.update({}, {$unset: {'meta.asin': ''}}, false, true)
db.amazon_rev.update({}, {$unset: {'meta.asin': ''}}, {multi: true})
db.amazon_rev.update({}, {$unset: {'meta.asin':1}}, {multi: true})
db.amazon_rev.update({}, {$unset: {'meta.asin': true}}, {multi: true})
每次都说:
WriteResult({ "nMatched" : 237199, "nUpserted" : 0, "nModified" : 0 })
什么都没有改变:
(此集合由 mongodb 聚合 $lookup 从两个集合(review 和 meta,均由 asin 索引)合并在一起)
db.amazon_rev.findOne()
{
"_id" : ObjectId("57f21916672286a104572738"),
"reviewerID" : "A2E2I6B878????",
"asin" : "B000GI????",
"reviewerName" : "Big????",
"helpful" : [
0,
0
],
"unixReviewTime" : 137???????,
"reviewText" : "........................................",
"overall" : 5,
"reviewTime" : "????, 2013",
"summary" : "............",
"meta" : [
{
"_id" : ObjectId("57f218e2672286a10456af7d"),
"asin" : "B000GI????",
"categories" : [
[
".................."
]
]
}
]
}
我错过了什么吗?感谢您的任何建议!
【问题讨论】:
-
Remove a field from array element in mongodb 的可能重复项。取消设置不适用于数组。
-
@RobertMoskal 感谢您的指导,文档中的示例说“以下 update() 操作使用 $unset 运算符从产品集合中的第一个文档中删除字段数量和库存”。所以我认为
multi不仅会修改第一个文档。如果 $unset 对数组不起作用,它支持什么样的集合?
标签: mongodb