Database

db={"groups":[{"_id":"1","LastMessageDate":ISODate("2022-06-19T14:10:30Z"),"Members":[{"UserId":1,"LastReadDate":ISODate("2022-06-18T14:10:30Z")},{"UserId":2,"LastReadDate":ISODate("2022-06-19T14:10:30Z")}]},{"_id":"2","LastMessageDate":ISODate("2022-06-18T14:10:30Z"),"Members":[{"UserId":2,"LastReadDate":ISODate("2022-06-17T14:10:30Z")},{"UserId":3,"LastReadDate":ISODate("2022-06-18T14:10:30Z")}]}]}

Query

db.groups.aggregate([{"$set":{Members:{$filter:{input:"$Members",cond:{$and:[{$eq:["$$this.UserId",2]},{$gt:["$LastMessageDate","$$this.LastReadDate"]}]}}}}},{$match:{Members:{$ne:[]}}}])

Result