このデータを検討してください
{
"_id" : ...,
"array" : [
{ "name" : "value1","flag" : true } ,
{ "name" : "value2","flag" : false }
]
}
2 番目の配列要素を (false から true に) 切り替えたい
次のような非常に便利な $ 位置演算子を使用して、特定の要素を更新できることを知っています。
db.myCollection.update(
{'array.name':'value2'},
{
$set: {
'array.$.flag':true
}
},false,true);
しかし、値の設定にも $ 位置演算子を使用する方法はありますか?
例えばこんな?
db.myCollection.update(
{'array.name':'value2'},
{
$set: {
'array.$.flag':'!array.$.flag' //<--
}
},false,true);