Tente usar
$[]
em seu $addToSet
para elemento posicional múltiplo db.collection.update({},
{
$addToSet: {
"courses.$[c].semesters.$[s].subjects": {
"subject": "C++"
}
}
},
{
arrayFilters: [
{
"c.course": "Btech"
},
{
"s.sem": 1
}
]
})
Mongo playground
Documentação oficial para identificador é $[]