Пожалуйста, попробуйте это:
db.collection.updateMany(
{'TeamRoles.Role': "Systems Analyst"},
{ $set: { "TeamRoles.$[element].Role" : "Business Analyst" } },
{ arrayFilters: [ { "element.Role": "Systems Analyst" } ] }
)
Сбор данных:
/* 1 */
{
"_id" : ObjectId("5e2776c7dc791f82e7e1736d"),
"Name" : "Mark",
"Gender" : "M",
"State" : "VA",
"TeamRoles" : [
{
"Team" : "A",
"Role" : "Quality Advisor",
"Active" : true
},
{
"Team" : "B",
"Role" : "Systems Analyst",
"Active" : true
},
{
"Team" : "C",
"Role" : "Systems Analyst",
"Active" : true
}
]
}
/* 2 */
{
"_id" : ObjectId("5e2776c7dc791f82e7e1736e"),
"Name" : "Stacy",
"Gender" : "F",
"State" : "GA",
"TeamRoles" : [
{
"Team" : "A",
"Role" : "Systems Analyst",
"Active" : true
},
{
"Team" : "B",
"Role" : "Developer",
"Active" : true
}
]
}
Результат:
/* 1 */
{
"_id" : ObjectId("5e2776c7dc791f82e7e1736d"),
"Name" : "Mark",
"Gender" : "M",
"State" : "VA",
"TeamRoles" : [
{
"Team" : "A",
"Role" : "Quality Advisor",
"Active" : true
},
{
"Team" : "B",
"Role" : "Business Analyst",
"Active" : true
},
{
"Team" : "C",
"Role" : "Business Analyst",
"Active" : true
}
]
}
/* 2 */
{
"_id" : ObjectId("5e2776c7dc791f82e7e1736e"),
"Name" : "Stacy",
"Gender" : "F",
"State" : "GA",
"TeamRoles" : [
{
"Team" : "A",
"Role" : "Business Analyst",
"Active" : true
},
{
"Team" : "B",
"Role" : "Developer",
"Active" : true
}
]
}
Ссылка: updateMany-arrayFilters