Order.updateMany({
"items.a": {$exists: false},
"items.b": {$exists: false}
}, {
$set: {
"items.$[element].a": false,
"items.$[element].b": []
}
}, {
arrayFilters: [
{
'element.a' : {$exists: false}
}
]
});
我正在尝试查找所有没有a和b字段(未为它们定义)的文档,并使用值false和[]为它们设置这些字段。我收到此错误:“MongoServerError:文档中必须存在路径'项目'才能应用数组更新。” 但是项目已经按顺序声明:
new Schema({
...
items: [{type: orderItemSchema, required: true}],
...
}
我还希望能够将其他条件“element.b”:{$exists:false} 也添加到arrayFilter。有任何想法吗?