0
的一些領域我的文檔這樣一個集合:貓鼬更新只是一個數組
{
'email': '[email protected]',
'calls':[
{
'day' : {'mm':9, 'dd':4},
'value' : "AA"
},
{
'day' : {'mm':9, 'dd':3},
'value' : "BB"
},
{
'day' : {'mm':9, 'dd':2},
'value' : "CC"
}
]
}
如何更新與貓鼬選定一天只值是多少? 我需要這樣的東西:
更新天2/9和3/9值與XX和YY
Users.findOneAndUpdate(
{
'email' : '[email protected]',
'calls.day.mm' : 9,
'calls.day.dd' : {$in:[2, 3]}
},
{
'calls.$0.mm' : "XX",
'calls.$1.mm' : "YY"
});
結果應該是:
{
'email': '[email protected]',
'calls':[
{
'day' : {'mm':9, 'dd':4},
'value' : "AA"
},
{
'day' : {'mm':9, 'dd':3},
'value' : "YY"
},
{
'day' : {'mm':9, 'dd':2},
'value' : "XX"
}
]
}
對不起,我編輯了我的問題。是關於「更新」而不是預測 – DeLac
可能是錯誤的,但我不認爲這是可能的。因爲mongo findAndModify應用query..find文檔,然後設置您指定的屬性。在你的情況下,你做智能更新,如'值匹配2設置爲X和值匹配3設置爲Y',mongo不關心這個..它只會更新你設置...我會建議運行find ..更新你所需要的並保存文件。 –
所以我應該'查找({'email':'[email protected]'})'用戶,掃描所有的'user.calls.day.dd',併爲他們每個人,檢查它是否= = 2 || == 3'。然後修改調用,並在最後執行'user.save()'。對? – DeLac