Mongodb位置运算符不起作用
Posted
技术标签:
【中文标题】Mongodb位置运算符不起作用【英文标题】:Mongodb positional operator is not working 【发布时间】:2021-09-18 16:31:33 【问题描述】:当我试图只更新“标题”时,它工作正常,但如果我试图更新数组中的嵌套对象,它就不起作用。
数据: 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,
);
【问题讨论】:
请不要粘贴图片,使用格式化文本。见meta.***.com/a/285557/3027266 【参考方案1】:演示 - https://mongoplayground.net/p/caFBz-lx8dQ
使用$[]
过滤的位置运算符 $[] 识别与更新操作的 arrayFilters 条件匹配的数组元素
db.collection.update(
,
$set: "grades.$[elem].grade": 0 ,
arrayFilters: [ "elem.grade": 85 ]
)
【讨论】:
这有点奇怪。您的代码仍然无法在我的项目中运行。自从我使用它以来,我认为猫鼬有问题。以上是关于Mongodb位置运算符不起作用的主要内容,如果未能解决你的问题,请参考以下文章