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:{verbs:{$reduce:{input:"$verbs",initialValue:[],in:{$concatArrays:["$$value","$$this"]}}},nouns:{$reduce:{input:"$nouns",initialValue:[],in:{$concatArrays:["$$value","$$this"]}}},sentence:1}},{$project:{nouns_count_temp:{$map:{input:"$nouns",as:"c",in:{k:"$$c",v:1}}},verbs_count_temp:{$map:{input:"$verbs",as:"c",in:{k:"$$c",v:1}}},sentence:1}},{$project:{sentence:1,noun_count:{$reduce:{input:"$nouns_count_temp",initialValue:[],in:{$cond:[{$in:[{k:"$$this.k",v:"$$this.v"},"$$value"]},{$add:["$$value.$.v",1]},{$concatArrays:["$$value",[{k:"$$this.k",v:"$$this.v"}]]}]}}},verb_count:{$reduce:{input:"$verbs_count_temp",initialValue:[],in:{$cond:[{$in:[{k:"$$this.k",v:"$$this.v"},"$$value"]},{$add:["$$value.$.v",1]},{$concatArrays:["$$value",[{k:"$$this.k",v:"$$this.v"}]]}]}}}}}])

Result