Here is an example : example
I am trying to add 'X' and 'Y' only to the subcategory
arrays that contains EDUCATION
key. What is happening here is that it adds 'X' and 'Y' to all subcategory
if at least on of them contains the EDUCATION
key.
CodePudding user response:
You need to use arrayFilters, to match specific element in an array.
db.collection.update({},
{
"$push": {
"data.category.$[elem].subcategory": {
"$each": [
"X",
"Y"
]
}
}
},
{
multi: true,
arrayFilters: [
{
"elem.subcategory": "EDUCATION"
}
]
})
Check this link