1
我在MongoDB中更新數組元素時遇到問題。這是一個文件的結構:如何更新MongoDB文檔中的數組元素
{
"_id" : ObjectId("57e2645e11c979157400046e"),
"site" : "BLABLA",
"timestamp_hour" : 1473343200,
"values" : [
{
"1473343200" : 66
},
{
"1473344100" : 230
},
{
"1473345000" : 479
},
{
"1473345900" : 139
}
]
}
現在我想用鍵「1473345900」更新元素。我怎樣才能做到這一點?我已經試過:
db.COLLECTIONNAME.update({"values.1473345900": {$exists:true}}, {$set: {"values.$": 0}})
但在那之後文檔的樣子:
{
"_id" : ObjectId("57e2645e11c979157400046e"),
"site" : "BLABLA",
"timestamp_hour" : 1473343200,
"values" : [
{
"1473343200" : 66
},
{
"1473344100" : 230
},
{
"1473345000" : 479
},
0
]
}
我做錯了嗎?我只想將1473345900的值更新爲任何值...我不想更新完整元素...
非常感謝!
問題是:我不知道** 1473345900 **是否已經存在。所以1)我必須找出** 1473345900 **是否存在,以及2)我必須更新** 1473345900 **的值。對不起,我錯過了解釋... – tmieruch
'db.sites.update({「values.1473345900」:{$ exists:true}},{$ set:{「values。$。1473345900」:0}}) '會做到這一點。 Thx,Chridam !!! – tmieruch