Database

[{"_id":1,"user":"xyz","sentence":"I watch movies and web series.","nouns":["movies","web series"],"verbs":["watch"]},{"_id":2,"user":"xyz","sentence":"movies are good way to relax","nouns":["movies"],"verbs":["relax"]},{"_id":3,"user":"abc","sentence":"I play cricket.","nouns":["cricket"],"verbs":["play"]},{"_id":4,"user":"abc","sentence":"I sleep.","nouns":[],"verbs":["sleep"]},]

Query

db.collection.aggregate([{$group:{_id:"$user",sentence:{$push:"$sentence"},verbs:{$push:"$verbs"},nouns:{$push:"$nouns"}}},{$project:{sentence:1,verbs:{$reduce:{input:"$verbs",initialValue:[],in:{$concatArrays:["$$value","$$this"]}}},nouns:{$reduce:{input:"$nouns",initialValue:[],in:{$concatArrays:["$$value","$$this"]}}}}},{$project:{sentence:1,noun_count:{$reduce:{input:"$nouns",initialValue:{},in:{$mergeObjects:["$$value",{$arrayToObject:[[{k:"$$this",v:{$let:{vars:{word:"$$this",tmp:{$filter:{input:{$objectToArray:"$$value"},as:"tmp",cond:{$eq:["$$tmp.k","$$this"]}}}},in:{$add:[{$ifNull:[{$arrayElemAt:["$$tmp.v",0]},0]},1]}}}}]]}]}}},verb_count:{$reduce:{input:"$verbs",initialValue:{},in:{$mergeObjects:["$$value",{$arrayToObject:[[{k:"$$this",v:{$let:{vars:{word:"$$this",tmp:{$filter:{input:{$objectToArray:"$$value"},as:"tmp",cond:{$eq:["$$tmp.k","$$this"]}}}},in:{$add:[{$ifNull:[{$arrayElemAt:["$$tmp.v",0]},0]},1]}}}}]]}]}}}}}])

Result