Database
[{"User":"A","Receiver":"B","IsRead":false},{"User":"B","Receiver":"A","IsRead":false},{"User":"A","Receiver":"B","IsRead":false},{"User":"A","Receiver":"C","IsRead":false},{"User":"C","Receiver":"A","IsRead":false}]
Query
db.collection.aggregate([{$group:{_id:{"$setUnion":[["$User"],["$Receiver"]]},"Messages":{$sum:{"$cond":{"if":{$not:"$IsRead"},"then":1,"else":0}}}}}])