Database

[{title:"abc",parts:[{part:"verse",progressions:[{progression:"62a4a87da7fdbdabf787e47f",key:"Ab",_id:"62b5aaa0c9e9fe8a7d7240d3"},{progression:"62adf477ed11cbbe156d5769",key:"C",_id:"62b5aaa0c9e9fe8a7d7240d3"},],_id:"62b5aaa0c9e9fe8a7d7240d2"},{part:"chorus",progressions:[{progression:"62a4a51b4693c43dce9be09c",key:"E",_id:"62b5aaa0c9e9fe8a7d7240d9"}],_id:"62b5aaa0c9e9fe8a7d7240d8"}],},{title:"def",parts:[{part:"verse",progressions:[{progression:"33a4a87da7fopvvbf787erwe",key:"E",_id:"62b5aaa0c9e9fe8a7d7240d3"},{progression:"98opf477ewfscbbe156d5442",key:"Bb",_id:"62b5aaa0c9e9fe8a7d7240d3"},],_id:"12r3aaa0c4r5me8a7d72oi8u"},{part:"bridge",progressions:[{progression:"62a4a51b4693c43dce9be09c",key:"C#",_id:"62b5aaa0c9e9fe8a7d7240d9"}],_id:"62b5aaa0rwfvse8a7d7240d8"}],}]

Query

db.collection.aggregate([{$addFields:{inputData:[{part:"verse",progressions:["62a4a87da7fdbdabf787e47f","62a4a51b4693c43dce9be09c"]},{part:"chorus",progressions:["62adf477ed11cbbe156d5769"]}]}},{$set:{matchCond:{$map:{input:"$parts",as:"parts",in:{progs:{$map:{input:"$$parts.progressions",in:{"$mergeObjects":["$$this",{input:{progressions:[]}},{input:{$first:{$filter:{input:"$inputData",as:"inputPart",cond:{$eq:["$$inputPart.part","$$parts.part"]}}}}}]}}}}}}}},{$set:{matchCond:{$reduce:{input:"$matchCond",initialValue:0,in:{$add:["$$value",{$size:{$filter:{input:"$$this.progs",as:"part",cond:{$in:["$$part.progression","$$part.input.progressions"]}}}}]}}}}},{$match:{matchCond:{$gt:0}}},{$project:{title:1,parts:1}}])

Result