Database

[{"_id":1,"animals":[{"name":"cat"},{"name":"cat"},{"name":"cat"}],"fruits":[{"name":"apple"},{"name":"orange"},{"name":"orange"}]},{"_id":2,"animals":[{"name":"cat"},{"name":"dog"},{"name":"bird"}],"fruits":[{"name":"apple"},{"name":"pear"},{"name":"mango"}]}]

Query

db.collection.aggregate([{$unwind:"$animals"},{$unwind:"$fruits"},{$group:{_id:"$_id",uniqueanimals:{$addToSet:"$animals"},uniquefruits:{$addToSet:"$fruits"}}},{$project:{originalanimals:1,uniqueanimals:1,uniqueanimalscount:{$size:"$uniqueanimals"},uniquefruits:1,uniquefruitscount:{$size:"$uniquefruits"}}}])

Result