Database

db={"film":[{"title":"movie-1","actors":["actor-1","actor-2","actor-3",],"categories":["category-1","category-2"]},{"title":"movie-2","actors":["actor-2","actor-3",],"categories":["category-2"]}]}

Query

db.film.aggregate([{$unwind:"$actors"},{$group:{_id:"$actors",data:{$push:{movie:"$title",categories:"$categories"}}}},{$unwind:"$data"},{$unwind:"$data.categories"},{$group:{_id:{actors:"$_id",categories:"$data.categories"},movies:{$push:"$data.movie"}}},{$project:{_id:0,actor:"$_id.actors",result:{k:"$_id.categories",v:"$movies"}}},{$group:{_id:"$actor",result:{$push:"$result"}}},{$project:{_id:0,actor:"$_id",result:{$arrayToObject:"$result"}}},{$sort:{actor:1}}])

Result