我有一个这样的数组:
{
"_id" : ObjectId("5ae5afc93e1d0d2965a4f2d7"),
"entries" : [
{
"_id" : ObjectId("5b159ebb0ed51064925dff24"),
"tags" : [
ObjectId("5b142608e419614016b89925"),
ObjectId("5b142b40e419614016b89937")
]
}
],
"tags" : [
{
"_id" : ObjectId("5b142608e419614016b89925"),
"name" : "Outdated",
"color" : "#3498db"
},
{
"_id" : ObjectId("5b142b40e419614016b89937"),
"name" : "Todo",
"color" : "#e8b00a"
}
],
}
我想删除" tagId2"来自entries
中的每个项目。我试图将position operator用于work with arrays:
db.projects.updateOne(
{
"_id" : ObjectId("5ae5afc93e1d0d2965a4f2d7"),
},
{
$pull: {
'entries.$[].tags': ObjectId("5b142b40e419614016b89937")
}
})
但是我收到了MongoDB错误:
WriteError:不能使用部分(条目条目。$ []。tags)来遍历元素([条目数组])
我该如何正确使用它?感谢。