3
從所有的子文檔的字段我有成千上萬的文件格式爲:的MongoDB:刪除陣列中的場
{
"_id" : ObjectId("51e98d196b01c2085c72d731"),
"messages" : [
{
"_id" : ObjectId("520167056b01c20bb9eee987"),
"id" : ObjectId("520167056b01c20bb9eee987"),
},
{
"_id" : ObjectId("520167056b01c20bb9eee988"),
"id" : ObjectId("520167056b01c20bb9eee988"),
},
{
"_id" : ObjectId("520167056b01c20bb9eee989"),
"id" : ObjectId("520167056b01c20bb9eee989"),
}
],
}
我需要刪除重複的「ID」字段。這是我曾嘗試:
db.forum_threads.update({}, {$unset: {"messages.$.id": 1}}, {multi: true});
這是我收到的錯誤:
Cannot apply the positional operator without a corresponding query field containing an array.
我有預感這是不可能的。猜猜我必須去替代路線,謝謝! – user1236803
感謝您的解釋,我錯過了「。$」。在$ unset子句中。這是意想不到的行爲,它只從它遇到的第一個子目錄中刪除屬性,但這仍然有助於捏,我只是多次運行它,直到我將它們全部刪除。 – SteveO7