rowsレコードの配列の各フィールドでmongodbの更新を実行しようとしています。
スキーマの例を以下に示します。
{
"_id" : ObjectId("508710f16dc636ec07000022"),
"summary" : "",
"uid" : "ABCDEF",
"username" : "bigcheese",
"name" : "Name of this document",
"status_id" : 0,
"rows" : [
{
"score" : 12,
"status_id" : 0,
"uid" : 1
},
{
"score" : 51,
"status_id" : 0,
"uid" : 2
}
]
}
これまでのところ、次のような単一の更新を実行できました。
db.mycollection.update({"uid":"ABCDEF","rows.uid":1}, {$set:{"rows.$.status_id":1}},false,false)
ただし、すべてのアレイレコードを1に更新する更新を実行する方法については苦労していstatus_id
ます(たとえば)。
以下は、それが機能するはずだと私が想像する方法です。
db.mycollection.update({"uid":"ABCDEF"}, {$set:{"rows.$.status_id":1}},false,true)
ただし、エラーが発生します。
文字列フィールド名[$]を使用して配列に追加することはできません
私はかなり長い間運がなかった。ポインタはありますか?