1
返回的第一個答案谷歌是: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 })
沒有任何變化:
(這個系列是由兩個集合(審查和彙總合併在一起,通過ASIN兩個索引)的MongoDB的聚集$查找)
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" : [
[
".................."
]
]
}
]
}
有什麼我錯過了什麼?感謝您的任何建議!
[從mongodb中的數組元素中刪除一個字段]可能有重複(http://stackoverflow.com/questions/19945924/remove-a-field-from-array-element-in-mongodb)。取消設置不適用於陣列。 –
@RobertMoskal感謝您的指導,文檔中的示例顯示「以下update()操作使用$ unset運算符從產品集合中的第一個文檔中刪除字段數量和庫位」。所以我認爲'multi'不僅會修改第一個文檔。如果$ unset在數組上不起作用,它支持哪種類型的集合? – leoce