Database
[{"_id":ObjectId("5234cc89687ea597eabee675"),"code":"xyz","tags":["school","book","bag","headphone","appliance"],"qty":[{"size":"S","num":10,"color":"blue"},{"size":"M","num":45,"color":"blue"},{"size":"M","num":60,"color":"blue"},{"size":"L","num":100,"color":"green"}]},{"_id":ObjectId("5234cc8a687ea597eabee676"),"code":"abc","tags":["appliance","school","book"],"qty":[{"size":"6","num":100,"color":"green"},{"size":"6","num":50,"color":"blue"},{"size":"8","num":100,"color":"brown"}]},{"_id":ObjectId("5234cc8a687ea597eabee677"),"code":"test","tags":["test"],"qty":[{"size":"M","num":10,"color":"test"},{"size":"M","num":10,"color":"test"}]}]
Query
db.collection.aggregate([{"$addFields":{"filterArr":{"$map":{"input":"$qty","as":"q","in":{$and:[{$eq:["$$q.size","M"]},{$lt:["$$q.num",50]}]}}}}},{"$match":{$expr:{"$allElementsTrue":"$filterArr"}}},{"$project":{filterArr:false}}])