mongodb-query - MongoDB 数组过滤器
问题描述
我正在尝试使用数组过滤器更新嵌套数组,首先我尝试使用基本的数组过滤器更新查询,我从 mongodb 教程中复制粘贴了更新查询,但我收到如下错误:错误:“没有数组过滤器在路径 'grades.$[elem].mean' 中找到标识符 'elem' “我正在使用 'db version v4.0.2' 和 'MongoDB shell version v4.0.2
这是我的收藏详情,
{
"_id" : 1,
"grades" : [
{
"grade" : 80,
"mean" : 75,
"std" : 6
},
{
"grade" : 85,
"mean" : 90,
"std" : 4
},
{
"grade" : 85,
"mean" : 85,
"std" : 6
}
]
}
//End of First Record
{
"_id" : 2,
"grades" : [
{
"grade" : 90,
"mean" : 75,
"std" : 6
},
{
"grade" : 87,
"mean" : 90,
"std" : 3
},
{
"grade" : 85,
"mean" : 85,
"std" : 4
}
]
}
//End of Second record
更新查询:
db.getCollection('students2').update(
{ },
{ $set: { "grades.$[elem].mean" : 100 } },
{
multi: true,
arrayFilters: [ { "elem.grade": { $gte: 85 } } ]
}
)
抛出错误:在路径“grades.$[elem].mean”中找不到标识符“elem”的数组过滤器
解决方案
推荐阅读
- tensorflow - 如何在tensorflow对象检测api中为不同检测类可视化具有不同min_thres值的框和标签?
- haskell - haskell 中的 foldl(多级 foldl)问题
- php - 403 Forbidden - 拒绝访问服务器上的此资源 - PHP
- macos - 通过 WiFi 进行 Internet 共享时如何在 Mac 上查看连接的 IP 地址
- html - 错误消息“drive.google.com 拒绝连接”。
- email - 如何使用 postfix 在 Ubuntu 16.04 上设置邮件服务器
- css - CSS,Stylus:有条件的“else”被忽略
- python - 如何根据 anotehr 单选按钮值禁用 django 表单单选按钮
- vtk - 如何使用 pyqt6 添加 vtk/pyvista 窗口?
- python - django.core.exceptions.AppRegistryNotReady:应用程序尚未加载。当我尝试在heroku上的consumers.py中导入模型时