gpt4 book ai didi

mongodb 3.6 arrayFilters 需要一个顶级字段名称

转载 作者:可可西里 更新时间:2023-11-01 09:09:15 26 4
gpt4 key购买 nike

我正在尝试使用 arrayFilters 更新嵌套数组,根据文档,它似乎应该可以工作,但我遇到了错误:

Error parsing array filter: Expected a single top-level field name, found 'w' and 'd'

查询看起来像这样:

db.getCollection("timesheets").update( {
"year": "2018",
"month": "06" }, {
"$set": {
"workers.$[w].days.$[d]": {
"day": 9,
"month": "06",
"year": "2018",
"isHoliday": false,
"isSaturday": true,
"isSunday": false,
"canEditPlanned": true
}
} }, {
"arrayFilters": [
{

"w._id": "XT5PFAPN9TFY3jXtJ",
"d.day": 9

}
] })

最佳答案

当使用 arrayFiltersupdate a nested array 时,过滤器的每个嵌套级别都需要在其自己的 arrayFilters 数组元素中定义:

db.getCollection("timesheets").update({
"year": "2018",
"month": "06"
}, {
"$set": {
"workers.$[w].days.$[d]": {
"day": 9,
"month": "06",
"year": "2018",
"isHoliday": false,
"isSaturday": true,
"isSunday": false,
"canEditPlanned": true
}
}
}, {
"arrayFilters": [
{
"w._id": "XT5PFAPN9TFY3jXtJ"
},
{
"d.day": 9
}
]
})

关于mongodb 3.6 arrayFilters 需要一个顶级字段名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51051057/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com