我有一個像MongoDB的文檔:更新陣列中的所有元素在MongoDB中
{
"name" : "JohnDoe",
"adds" : [
{
"status" : "PENDING",
"date" : "2015-09-23"
},
{
"status" : "PENDING",
"date" : "2015-10-01"
}
]
}
我想更新所有的數組元素,如:
collection.update({'name':'JohnDoe'}, {'$set':{'adds.status':'APPROVED'}}).
如何做到這一點?
編輯:大多數解決方案表示使用位置運算符來選擇數組元素,然後使用運算符來更新該元素。但在我的情況下,我不得不更新數組中的每個元素。
@sheilak我發佈的用戶可以選擇一個單獨的數組元素,然後他可以使用位置運算符更新它。但我必須更新數組中的每個元素。 –
該問題的答案解釋說您無法在一次更新中對數組中的所有項執行$ set。接受的答案與有關該問題的開放JIRA票證相關聯。還有多個變通辦法。 – sheilak