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