不能使用部分 (...) 遍历元素
cannot use the part (...) to traverse the element
运行 mongod
3.6 并尝试使用 this example.
示例数据如下:
> db.students2.find().pretty()
{
"_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
}
]
}
我正在尝试使用示例中指定的所有位置运算符:
> db.students2.update({}, { $inc: { "grades.$[].std" : -2 } }, {multi: true})
WriteResult({
"nMatched" : 0,
"nUpserted" : 0,
"nModified" : 0,
"writeError" : {
"code" : 16837,
"errmsg" : "cannot use the part (grades of grades.$[].std) to traverse the element ({grades: [ { grade: 80.0, mean: 75.0, std: 8.0 }, { grade: 85.0, mean: 90.0, std: 6.0 }, { grade: 85.0, mean: 85.0, std: 8.0 } ]})"
}
})
为什么会出现此错误消息?我没有正确遵循文档吗?
当 mongodb 从低版本切换到高版本时,您必须为您的 mongodb 设置 setFeatureCompatibilityVersion
which
Enables or disables the features that persist data incompatible with
earlier versions of MongoDB. You can only issue the
setFeatureCompatibilityVersion against the admin database.
您可以通过 运行 mongo shell
中的此命令简单地进行设置
db.adminCommand( { setFeatureCompatibilityVersion: "3.6" } )
运行 mongod
3.6 并尝试使用 this example.
示例数据如下:
> db.students2.find().pretty()
{
"_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
}
]
}
我正在尝试使用示例中指定的所有位置运算符:
> db.students2.update({}, { $inc: { "grades.$[].std" : -2 } }, {multi: true})
WriteResult({
"nMatched" : 0,
"nUpserted" : 0,
"nModified" : 0,
"writeError" : {
"code" : 16837,
"errmsg" : "cannot use the part (grades of grades.$[].std) to traverse the element ({grades: [ { grade: 80.0, mean: 75.0, std: 8.0 }, { grade: 85.0, mean: 90.0, std: 6.0 }, { grade: 85.0, mean: 85.0, std: 8.0 } ]})"
}
})
为什么会出现此错误消息?我没有正确遵循文档吗?
当 mongodb 从低版本切换到高版本时,您必须为您的 mongodb 设置 setFeatureCompatibilityVersion
which
Enables or disables the features that persist data incompatible with earlier versions of MongoDB. You can only issue the setFeatureCompatibilityVersion against the admin database.
您可以通过 运行 mongo shell
中的此命令简单地进行设置db.adminCommand( { setFeatureCompatibilityVersion: "3.6" } )