Usando a Mongo Multi Update primeiro puxe todos os
k:[color,style]
e então addToSet
em attr
valores dados da matriz. A consulta de atualização fica assim:db.runCommand({
"update": "sku",//here sku is collection name
"updates": [{
"q": {
"attr.k": "manufacturer",
"attr.v": "ShoesForAll"
},
"u": {
"$pull": {
"attr": {
"k": {
"$in": ["color", "style"]
}
}
}
},
"multi": true
}, {
"q": {
"attr.k": "manufacturer",
"attr.v": "ShoesForAll"
},
"u": {
"$addToSet": {
"attr": {
"$each": [{
"k": "color",
"v": "red"
}, {
"k": "style",
"v": "sport"
}]
}
}
}
}]
})