Database

[{"id":1,"name":"myObject","sections":[{"id":"section1","items":[{"id":1,"name":"item1.1","scores":[{"userId":13,"score":10}]},{"id":2,"name":"item1.2","scores":[{"userId":66,"score":10}]}]},{"id":"section2","items":[{"id":3,"name":"item2.1","scores":[{"userId":13,"score":20}]}]}]}]

Query

db.collection.update({},[{"$set":{"data":[{"sectionId":"section1","itemName":"item1.1","userId":10,"score":20},{"sectionId":"section1","itemName":"item1.1","userId":13,"score":30},{"sectionId":"section2","itemName":"item2.1","score":33,"userId":10}]}},{"$set":{"sections":{"$reduce":{"input":"$data","initialValue":"$sections","in":{"$let":{"vars":{"data":"$$this"},"in":{"$map":{"input":"$$value","in":{"$cond":[{"$ne":["$$section.id","$$data.sectionId"]},"$$section",{"$mergeObjects":["$$section",{"items":{"$map":{"input":"$$section.items","in":{"$cond":[{"$ne":["$$item.name","$$data.itemName"]},"$$item",{"$mergeObjects":["$$item",{"scores":{"$let":{"vars":{"user_exist":{"$in":["$$data.userId","$$item.scores.userId"]}},"in":{"$cond":[{"$not":["$$user_exist"]},{"$concatArrays":["$$item.scores",[{"userId":"$$data.userId","score":"$$data.score"}]]},{"$map":{"input":"$$item.scores","in":{"$cond":[{"$ne":["$$score.userId","$$data.userId"]},"$$score",{"$mergeObjects":["$$score",{"score":"$$data.score"}]}]},"as":"score"}}]}}}}]}]},"as":"item"}}}]}]},"as":"section"}}}}}}}},{"$unset":["data"]}])

Result