$ []运算符遍历问题mongodb

时间:2018-03-20 11:08:22

标签: mongodb mongodb-query

我正在尝试在“更新阵列中的所有文档”部分的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}]})

  • Mongo版本:3.6.3

任何建议都将受到赞赏。

1 个答案:

答案 0 :(得分:0)

根据@ Veeram的建议,将setFeatureCompatibility设置为3.6(取决于您使用的版本)可以使其正常工作。在admin数据库上执行此命令。