在文档here之后,我正在尝试更新是否满足条件并且我得到上述错误。我有一个对象数组,如果条件满足,我想更新嵌套对象的特定字段。以下是我到目前为止的情况:
示例文档
"userImages" : [
{
"profilePicture" : "https://myprofilepic.jpg"
},
{
"favoritePicture" : "https://myfavepic.jpg"
}
]
代码
const imageToChange = 'https://noLongerValidImage';
const query = { _id };
const updateQuery = {
'$set': {
'userImages.$[elem].profilePicture': 'https://newProfilePic.png'
}
};
const options = {
"multi":false,
"upsert":false,
"arrayFilters":[{
"elem.profilePicture":imageToChange
}]
}
我没有看到任何错误,这本身很麻烦,因为我无法解决这个问题:
无法使用该部分(userImages的用户图像。$ [elem] .profilePicture) 遍历元素({userImages:[{profilePicture: " https://myprofilepic.jpg",favoritePicture: " https://myprofilepic.jpg" }
以下是正在运行的查询:
db.collection.update(
query,
updateQuery,
options
)
答案 0 :(得分:0)
两个问题:
您确定此版本的MongoDB支持过滤后的位置运算符吗? This page表示您需要3.6
'=COUNTIFS(Table8[Reported Date],AND(Table8[Reported Date]<='Ticket Summary'!F61, Table8[Reported Date]< TODAY()),Table8[Business Area], "Corporate", Table8[Application], "CS")'
变量的值是什么?
featureCompatibilityVersion
为了设置它运行:
> db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
{ "featureCompatibilityVersion" : { "version" : "3.4" }, "ok" : 1 }`
版本之间的不兼容性如下所述: https://docs.mongodb.com/manual/release-notes/3.4-compatibility/