Database
db={"B":[{shortName:"B1"},{shortName:"B2"}],"settings":[{_name:"A",data:{year:2025}}],"A":[{name:"A2",shortNameInA:"B1",datesInfo:{closed:ISODate("2025-12-10")}},{name:"A3",shortNameInA:"B2",datesInfo:{report:ISODate("2025-03-10")}},{name:"A1",shortNameInA:"B1",datesInfo:{closed:ISODate("2024-12-10")}}]}
Query
db.B.aggregate([{"$lookup":{"from":"settings","let":{"settingsKey":"A"},"pipeline":[{"$match":{$expr:{$eq:["$$settingsKey","$_name"]}}}],"as":"settingsLookup"}},{"$unwind":"$settingsLookup"},{$lookup:{from:"A",localField:"shortName",foreignField:"shortNameInA",let:{settingYear:"$settingsLookup.data.year"},pipeline:[{$match:{$expr:{$or:[{$eq:[{$year:"$datesInfo.closed"},"$$settingYear"]},{$eq:[{$year:"$datesInfo.report"},"$$settingYear"]}]}}}],as:"_fromA"}},{"$unset":"settingsLookup"}])