Database

[{id:1,attrs:[{key:"prime",value:true},{key:"height",value:2},{key:"material",value:"wood"},{key:"color","value":"brown"}]},{id:2,attrs:[{key:"prime",value:true},{key:"fuel",value:"gas"},{key:"volume","value":3}]},{id:3,attrs:[{key:"prime",value:true},{key:"fuel",value:"diesel"},{key:"volume","value":1.5}]}]

Query

db.collection.aggregate([{$match:{$and:[{attrs:{$elemMatch:{key:"prime",value:true}}},{attrs:{$elemMatch:{key:"fuel"}}},{attrs:{$elemMatch:{key:"volume","value":3}}}]}}])

Result