Khi có nhiều điều kiện để khớp bên trong một mảng thì .Dot
ký hiệu không hoạt động với truy vấn cập nhật.
Bạn cần sử dụng $elemMatch
để khớp chính xác hai trường bên trong một mảng
db.getCollection('test').updateOne(
{
"_id": ObjectId("5b673f525ef92ec6ef16504e"),
"events": { "$elemMatch": { "name": "Winner", "map": 2 }}
},
{
"$push": { "events.$.something": { "something": "test" }}
}
)