我需要更新一个属性,它是一个数组,存在于我的MongoDB集合中的另一个数组中。现在,这是可行的:
{
"_id": request.parameters.id
},
{
$set: { "services.2.history": historyArray }
},
{
new: true
}
... 但我不想相信我所瞄准的元素永远都是正确的
2
.我确实知道目标元素中某个属性的值,但是:
{
_id: <value>,
category: 'evaluation', // I know the correct array element has this value
startDate: <date>
}
那么,有没有一种方法可以在这里传递该值,以便在
services
使用
$[]
接线员和
arrayFilters
?
我试过了,但没用:
{
_id: request.parameters.id
},
{
$set: { "services.$[element].history": historyArray }
},
{ arrayFilters: [{ element: { "$services.category": targetService.category } }] },
{
new: true
}
没有错误。只是似乎没有按预期更新文档。我错过什么了吗?这里的语法应该是什么样的?我希望它为“category”属性值为“evaluation”的服务更新数组元素。