我正在尝试在“更新阵列中的所有文档”部分的mongodb documentation上实现$[]
显示的示例
收集学生2以及以下文件
{
"_id" : 1,
"grades" : [
{ "grade" : 80, "mean" : 75, "std" : 8 },
{ "grade" : 85, "mean" : 90, "std" : 6 },
{ "grade" : 85, "mean" : 85, "std" : 8 }
]
}
{
"_id" : 2,
"grades" : [
{ "grade" : 90, "mean" : 75, "std" : 8 },
{ "grade" : 87, "mean" : 90, "std" : 5 },
{ "grade" : 85, "mean" : 85, "std" : 6 }
]
}
我正在使用shell执行以下查询(它与示例中显示的查询相同)
db.students2.update(
{ },
{ $inc: { "grades.$[].std" : -2 } },
{ multi: true }
)
我遇到的错误
不能使用该部分(等级等级。$ []。std)来遍历该元素({grade:[{grade:80,mean:75,std:8},{grade:85,mean:90, std:6},{grade:85,mean:85,std:8}]})
任何建议都将受到赞赏。
答案 0 :(得分:0)
根据@ Veeram的建议,将setFeatureCompatibility设置为3.6(取决于您使用的版本)可以使其正常工作。在admin数据库上执行此命令。