【问题标题】:$[] operator traversing issue mongodb$[] 运算符遍历问题 mongodb
【发布时间】:2018-08-29 04:10:21
【问题描述】:

我正在尝试在更新数组中的所有文档部分下的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 }
)

我遇到的错误

不能使用部分(grades of grades.$[].std)遍历元素({grades: [ {grade: 80, mean: 75, std: 8 }, {grade: 85, mean: 90,标准:6},{等级:85,平均:85,标准:8}]})

  • Mongo 版本:3.6.3

任何建议将不胜感激。

【问题讨论】:

标签: mongodb mongodb-query


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2016-03-22
    • 1970-01-01
    • 1970-01-01
    • 2011-09-06
    • 1970-01-01
    • 1970-01-01
    • 2010-12-24
    • 2010-11-06
    相关资源
    最近更新 更多