Database
[{domain_id:1,key:"A",value:1},{domain_id:1,key:"B",value:2},{domain_id:1,key:"C",value:3},{domain_id:2,key:"A",value:5},{domain_id:2,key:"B",value:2},{domain_id:2,key:"C",value:3},{domain_id:3,key:"C",value:3}]
Query
db.collection.aggregate([{$group:{_id:"$domain_id",data:{$push:"$$ROOT"}}},{$match:{$and:[{"data":{$elemMatch:{"key":"A","value":1}}},{"data":{$elemMatch:{"key":"C","value":3}}}]}},{$project:{domain_id:"$_id"}}])