Database
db={"members":[{name:"Joe",hobby:"Food"},{name:"Lyn",hobby:"Food"},{name:"Rex",hobby:"Play"},{name:"Rex",hobby:"Shop"},{name:"Joe",hobby:"Food"},{name:"Lyn",hobby:"Food"},{name:"Rex",hobby:"Play"},{name:"Rex",hobby:"Shop"},{name:"Joe",hobby:"Food"},{name:"Lyn",hobby:"Food"},{name:"Rex",hobby:"Play"},{name:"Rex",hobby:"Shop"},{name:"Joe",hobby:"Food"},{name:"Lyn",hobby:"Food"},{name:"Rex",hobby:"Play"},{name:"Rex",hobby:"Shop"},{name:"Joe",hobby:"Food"},{name:"Lyn",hobby:"Food"},{name:"Rex",hobby:"Play"},{name:"Rex",hobby:"Shop"},{name:"Joe",hobby:"Food"},{name:"Lyn",hobby:"Food"},{name:"Rex",hobby:"Play"},{name:"Rex",hobby:"Shop"},{name:"Joe",hobby:"Food"},{name:"Lyn",hobby:"Food"},{name:"Rex",hobby:"Play"},{name:"Rex",hobby:"Shop"},{name:"Joe",hobby:"Food"},{name:"Lyn",hobby:"Food"},{name:"Rex",hobby:"Play"},{name:"Rex",hobby:"Shop"},{name:"Joe",hobby:"Food"},{name:"Lyn",hobby:"Food"},{name:"Rex",hobby:"Play"},{name:"Rex",hobby:"Shop"},{name:"Joe",hobby:"Food"},{name:"Lyn",hobby:"Food"},{name:"Rex",hobby:"Play"},{name:"Rex",hobby:"Shop"},{name:"Joe",hobby:"Food"},{name:"Lyn",hobby:"Food"},{name:"Rex",hobby:"Play"},{name:"Rex",hobby:"Shop"},{name:"Joe",hobby:"Food"},{name:"Lyn",hobby:"Food"},{name:"Rex",hobby:"Play"},{name:"Rex",hobby:"Shop"},{name:"Joe",hobby:"Food"},{name:"Lyn",hobby:"Food"},{name:"Rex",hobby:"Play"},{name:"Rex",hobby:"Shop"},{name:"Joe",hobby:"Food"},{name:"Lyn",hobby:"Food"},{name:"Rex",hobby:"Play"},{name:"Rex",hobby:"Shop"},{name:"Joe",hobby:"Food"},{name:"Lyn",hobby:"Food"},{name:"Rex",hobby:"Play"},{name:"Rex",hobby:"Shop"},{name:"Joe",hobby:"Food"},{name:"Lyn",hobby:"Food"},{name:"Rex",hobby:"Play"},{name:"Rex",hobby:"Shop"},{name:"Joe",hobby:"Food"},{name:"Lyn",hobby:"Food"},{name:"Rex",hobby:"Play"},{name:"Rex",hobby:"Shop"},{name:"Joe",hobby:"Food"},{name:"Lyn",hobby:"Food"},{name:"Rex",hobby:"Play"},{name:"Rex",hobby:"Shop"},{name:"Joe",hobby:"Food"},{name:"Lyn",hobby:"Food"},{name:"Rex",hobby:"Play"},{name:"Rex",hobby:"Shop"},{name:"Joe",hobby:"Food"},{name:"Lyn",hobby:"Food"},{name:"Rex",hobby:"Play"},{name:"Rex",hobby:"Shop"},{name:"Joe",hobby:"Food"},{name:"Lyn",hobby:"Food"},{name:"Rex",hobby:"Play"},{name:"Rex",hobby:"Shop"},{name:"Joe",hobby:"Food"},{name:"Lyn",hobby:"Food"},{name:"Rex",hobby:"Play"},{name:"Rex",hobby:"Shop"},{name:"Joe",hobby:"Food"},{name:"Lyn",hobby:"Food"},{name:"Rex",hobby:"Play"},{name:"Rex",hobby:"Shop"},{name:"Joe",hobby:"Food"},{name:"Lyn",hobby:"Food"},{name:"Rex",hobby:"Play"},{name:"Rex",hobby:"Shop"},{name:"Joe",hobby:"Food"},{name:"Lyn",hobby:"Food"},{name:"Rex",hobby:"Play"},{name:"Rex",hobby:"Shop"}]}
Query
db.members.aggregate([{$skip:1},{$limit:2},{$lookup:{from:"members",let:{name:"$name",hobby:"$hobby"},pipeline:[{$match:{$expr:{$or:[{$eq:["$name","$$name"]},{$eq:["$hobby","$$hobby"]}]}}}],as:"count"}},{$project:{_id:0,name:1,hobby:1,nameCount:{$reduce:{input:"$count",initialValue:0,in:{$add:["$$value",{$cond:[{$eq:["$name","$$this.name"]},1,0]}]}}},hobbyCount:{$size:{$filter:{input:"$count",cond:{$eq:["$hobby","$$this.hobby"]}}}}}}])