"$oid": "5f19ff0ac695314d3b39a579"
},
"workers": {
"5f589dc04e2da1d14cb713db": {
"is_test": false,
},
"5f73196021c61fb9934283c9": {
"is_test": true,
},
"5f3bcb74abb7654d6aff8753": {
"is_test": false,
},
},
}
нужно в каждый workers добавить новое поле is_test со значением false.
Чтоб на выходе стало так:
{
"_id": {
"$oid": "5f19ff0ac695314d3b39a579"
},
"workers": {
"5f589dc04e2da1d14cb713db": {
"is_test": false,
"is_blocked": false,
},
"5f73196021c61fb9934283c9": {
"is_test": true,
"is_blocked": false,
},
"5f3bcb74abb7654d6aff8753": {
"is_test": false,
"is_blocked": false,
},
},
}
перерыл всю доку. Как с массивом вложенных документов понял как сделать. Но тут mapping. по сути это object у которого каждый филд это oid и его значение документ.
как бы это в один запрос сделать? ибо этих workers там много.
думаю стоило бы workers сделать массивом из ObjectID, а вот уже данные состояния вынести в коллекцию юзера, но как я понял - сейчас менять структуру нельзя :)
именно так. Что досталось, с тем и приходится работать) Я б тож сам так делать не стал
https://docs.mongodb.com/manual/tutorial/update-documents-with-aggregation-pipeline/ + https://docs.mongodb.com/manual/reference/operator/aggregation/objectToArray/ + https://docs.mongodb.com/manual/reference/operator/aggregation/map/ + https://docs.mongodb.com/manual/reference/operator/aggregation/arrayToObject/
Обсуждают сегодня