我是 mongodb 的新手。
我有一个这样的数据库:
{
"universe": "DC",
"characters": [
{"name": "superman", "selected": true},
{"name": "wonder woman", "selected": false},
{"name": "flash", "selected": false}
},
{
"universe": "marvel",
"characters": [
{"name": "wolverine", "selected": false},
{"name": "cyclops", "selected": false}
}
我正在尝试做如果universe
是“DC”,更新它的characters
角色所在的位置name
等于“神奇女侠”,那么我想要归属感selected
字段要更新为true
在同一文档中,与不匹配的字符name
《神奇女侠》的价值false
in selected
mydb.collection.findOneAndUpdate(
{
"universe": "DC", //only DC universe
"characters.name":"wonder woman"
},
{
$set: {
"characters.$.selected": true, // I dont know how to set false to other objects where name!=wonder woman
},
})
期望的结果:
{"name": "superman", "selected": false},
{"name": "wonder woman", "selected": true},
{"name": "flash", "selected": false}
我该怎么做?