Bạn không thể sử dụng nhiều $ positional, đối với trường hợp của bạn, bạn có thể sử dụng một positional và arrayFilters,
Toán tử vị trí được lọc $[<identifier>]
xác định các phần tử mảng phù hợp với điều kiện arrayFilters cho một thao tác cập nhật,
db.collection(TABLE).updateOne({
list_id: 23,
"cards.categories.category": "section01"
},
{
$push: {
"cards.$.categories.$[elem].tags": {
name: "tag02",
id: uuidv4(),
is_selected: true
}
}
},
{
arrayFilters: [
{ "elem.category": "section01" }
]
})
Sân chơi