我有以下mongodb集合:
Channels [
{
_id:'1'
members:[
{
_id:'1'
skipRounds:1
},
{
_id:'2'
skipRounds:3
},
]
},
{
_id:'2'
members:[
{
_id:'1'
skipRounds:3
},
{
_id:'2'
skipRounds:5
},
]
},
]
我试图为特定频道中的特定用户设置skipRounds上的值。
例如:我试图在ID为1到10的频道中为ID为2的用户设置skipRounds
db.Channels.updateOne({
'_id':'1',
'members._id' : '2'
}, {
$set: {'users.$.skipRounds': 10}
})
但是它似乎不起作用。有人知道为什么吗?
答案 0 :(得分:0)
要更新嵌套数组中的元素,请尝试以下操作:
db.Channels.update(
{"_id" : "1", "members._id" : "2"},
{
$set : {"members.$.skipRounds" : 10}
})
答案 1 :(得分:0)
将$set: {'users.$.skipRounds': 10}
替换为$set: {"members.skipRounds": 10}
示例
db.Channels.updateOne({
"_id":"1",
"members._id" : "2"
}, {
$set: {"members.skipRounds": 10}
})