比方說,有這樣的一個對象在數據庫:更新幾個對象通過標準
{
_id: <...>,
arrayOfObjects: [
{
criteria: "one",
value: 5
},
{
criteria: "two",
value: 5
},
{
criteria: "three",
value: 5
},
{
criteria: "four",
value: 5
},
]
}
我想要做的是運行類似的更新:
{
$inc: {
"arrayOfObjects.2.value" : -1
}
}
然而我需要它隻影響某些元素,例如{$或:[{criteria:「one」},{criteria:「three」}]} 我不能依賴數組索引作爲對象副本我可能在更新執行前已過期(可以插入,刪除對象,在數組中重新排列)。
是否有可能把它關閉?什麼是最佳的方式來做到這一點?
我很抱歉,我不能讓出來的查詢。你願意寫一個關於這在js客戶端中的樣子的實例嗎? – karka91
對不起,但你的例子不起作用,我看不出它是如何工作的。更新的查詢部分選擇整個文檔,並認爲沒有辦法只選擇文檔的一部分進行更新,就像您在此嘗試的那樣 – karka91