Database

[{user:1,"myList":[{"name":"xxx","amount":66.3,"unit":"myUnit"},{"name":"yyy","amount":11.6,"unit":"myUnit"},{"name":"zzz","amount":6.9,"unit":"myUnit"}]},{user:2,"myList":[{"name":"xxx","amount":616.3,"unit":"myUnit"},{"name":"yyy","amount":111.6,"unit":"myUnit"},{"name":"zzz","amount":61.9,"unit":"myUnit"}]}]

Query

db.collection.aggregate([{$unwind:"$myList"},{$addFields:{matches:{$filter:{input:[{name:"xxx",max:100,unit:"myUnit"},{name:"yyy",max:90,unit:"myUnit"}],cond:{$and:[{$eq:["$$this.name","$myList.name"]},{$eq:["$$this.unit","$myList.unit"]},{$lte:["$myList.amount","$$this.max"]}]}}}}},{$match:{matches:{$ne:[]}}},{$project:{matches:0}},{$group:{_id:"$_id",user:{$first:"$user"},myList:{$push:"$myList"}}}])

Result