Database

[{ID:1,Object1:"A",Object2:"B",selected:"A",Unselected:"B"},{ID:1,Object1:"A",Object2:"C",selected:"C",Unselected:"A"},{ID:1,Object1:"A",Object2:"B",selected:"B",Unselected:"A"},{ID:1,Object1:"B",Object2:"A",selected:"B",Unselected:"A"},{ID:1,Object1:"A",Object2:"C",selected:"C",Unselected:"A"},{ID:1,Object1:"C",Object2:"A",selected:"C",Unselected:"A"}]

Query

db.collection.aggregate([{"$facet":{"Objects":[{"$group":{"_id":"$Object1"}}],"Selected":[{"$group":{"_id":"$selected","count":{"$count":{}}}}],"Unselected":[{"$group":{"_id":"$Unselected","count":{"$count":{}}}}]}},{"$project":{"Objects":{"$map":{"input":"$Objects","as":"object","in":{"Object":"$$object._id","Selected":{"$cond":[{"$in":["$$object._id","$Selected._id"]},{"$arrayElemAt":["$Selected.count",{"$indexOfArray":["$Selected._id","$$object._id"]}]},0]},"Unselected":{"$cond":[{"$in":["$$object._id","$Unselected._id"]},{"$arrayElemAt":["$Unselected.count",{"$indexOfArray":["$Unselected._id","$$object._id"]}]},0]}}}}}},{"$unwind":"$Objects"},{"$replaceWith":"$Objects"}])

Result