Database
[{"group":"1","classes":[{"id":"101","quantity":"100","type":"AAA"},{"id":"102","quantity":"24","type":"BBB"},{"id":"103","quantity":"10","type":"BBB"},{"id":"104","quantity":"16","type":"AAA"},{"id":"105","quantity":"25","type":"AAA"},{"id":"106","quantity":"20","type":"BBB"},{"id":"107","quantity":"24","type":"AAA"}]},{"group":"2","classes":[{"id":"101","quantity":"20","type":"AAA"},{"id":"102","quantity":"30","type":"BBB"},{"id":"113","quantity":"100","type":"BBB"},{"id":"114","quantity":"16","type":"AAA"},{"id":"115","quantity":"20","type":"AAA"},{"id":"116","quantity":"20","type":"BBB"},{"id":"117","quantity":"80","type":"AAA"}]},{"group":"3","classes":[{"id":"101","quantity":"60","type":"AAA"},{"id":"102","quantity":"240","type":"BBB"},{"id":"103","quantity":"1","type":"BBB"},{"id":"104","quantity":"16","type":"AAA"},{"id":"105","quantity":"2","type":"AAA"},{"id":"106","quantity":"20","type":"BBB"},{"id":"107","quantity":"240","type":"AAA"}]}]
Query
db.collection.find({$expr:{$and:[{$ne:[{$setIntersection:["$classes.id",["101","102","103"]]},[]]},{$ne:[{$filter:{input:"$classes",cond:{$and:[{$in:["$$this.id",["101","102"]]},{$lt:[{$toInt:"$$this.quantity"},100]}]}}},[]]}]}})