Database

[{"appId":"1","targetFrom":"a","targetTo":"b","date":"2022-01-14","items":[{"id":1,"someOtherProperty":true},{"id":4,"someOtherProperty":false}]},{"appId":"1","targetFrom":"b","targetTo":"c","date":"2022-01-17","items":[{"id":2,"someOtherProperty":true}]},{"appId":"1","targetFrom":"x","targetTo":"y","date":"2021-12-24","items":[{"id":3,"someOtherProperty":true}]}]

Query

db.collection.aggregate({$match:{$expr:{$and:[{$eq:["$appId","1"]},{$and:[{$gte:["$date","2022-01-01"]},{$lt:["$date","2022-01-31"]}]},{$in:[1,"$items.id",]},{$or:[{$in:["$targetFrom",["a","c","x"]]},{$in:["$targetTo",["a","c","x"]]}]}]}}},{$project:{appId:1,targetFrom:1,targetTo:1,date:1,items:{$filter:{input:"$items",as:"item",cond:{$eq:["$$item.id",1]}}}}})

Result