javascript - Mongodb 位置运算符不起作用

标签 javascript node.js reactjs mongodb react-native

当我试图更新“标题”时,它工作正常,但如果我试图更新数组中的嵌套对象,它就不起作用。

数据: Data

工作:

const restaurant = await Restaurant.update(
    {_id: '60e6828e4992a2979fa0ba3e'},
    {$set: {title: "Hello}},
  );

不工作:

const restaurant = await Restaurant.update(
    {_id: '60e6828e4992a2979fa0ba3e', 'grades.grade': 85},
    {$set: {'grades.$.grade': 0}},
  );

最佳答案

演示 - https://mongoplayground.net/p/caFBz-lx8dQ

使用$[]

The filtered positional operator $[] identifies the array elements that match the arrayFilters conditions for an update operation

db.collection.update(
 {},
 { $set: { "grades.$[elem].grade": 0 }},
 { arrayFilters: [ {"elem.grade": 85 } ]}
)

关于javascript - Mongodb 位置运算符不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68297703/

相关文章:

javascript - 单击时未选择图像

javascript - 将 handlebars 变量传递给客户端 js 文件

javascript - 创建拖放卡时无法读取未定义的属性 'map'

javascript - 使用 ng-if 重复收集导致 'webkitTransform' 错误

javascript - 永久保存表单数据

javascript - res.sendFile 发送静态文件+对象

node.js - Nodejs/Swig If then 扩展(条件继承)

reactjs - Material-ui createMuiTheme 调色板类型“深色”不会将文本颜色更改为“浅色”

javascript - 如何在按下搜索图标后展开搜索栏

javascript - 创建一个包含 anchor 标记的列表