我有以下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}
})


但它似乎不起作用。有人知道为什么吗?

最佳答案

要更新嵌套数组中的元素,请尝试以下操作:

db.Channels.update(
    {"_id" : "1", "members._id" : "2"},
    {
        $set : {"members.$.skipRounds" : 10}
    })

关于node.js - 为什么我的mongodb更新操作不起作用? (Node.js),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58412953/

10-11 08:02