Database

[{Name:"a",start:30,end:35},{Name:"a",start:40,end:50},{Name:"b",start:10,end:25},{Name:"b",start:30,end:35},{Name:"b",start:60,end:80}]

Query

db.collection.aggregate([{$set:{isInRange:{"$cond":{"if":{$let:{vars:{x:44},in:{$and:[{$lte:["$start","$$x"]},{$gte:["$end","$$x"]}]}}},"then":true,"else":false}},diffToX:{"$abs":{"$subtract":["$end",44]}}}},{"$setWindowFields":{"partitionBy":"$Name","sortBy":{"diffToX":1},"output":{"anyInRange":{"$max":"$isInRange"},"rank":{"$rank":{}}}}},{"$match":{end:{$lt:44},anyInRange:false}},{$sort:{rank:1}},{$limit:1},{"$unset":["anyInRange","diffToX","isInRange","rank"]}])

Result