Database

[{"category":"A","list":[{"item":1,"sub_list":[11]},{"item":2,"sub_list":[13,43]}]}]

Query

db.collection.update({"category":"A"},[{"$set":{"list":{"$cond":{if:{$in:[1,{"$ifNull":["$list.item",[]]}]},then:{$map:{input:"$list",in:{$cond:{if:{$and:[{$eq:["$$this.item",1]},{$not:{$in:[11,{"$ifNull":["$$this.sub_list",[]]}]}}]},then:{$mergeObjects:["$$this",{"sub_list":{"$concatArrays":[{"$ifNull":["$$this.sub_list",[]]},[11]]}}]},else:"$$this"}}}},else:{"$concatArrays":[[{"item":1,"sub_list":[11]}],{$ifNull:["$list",[]]}]}}}}}],{"upsert":true})

Result