Database

[{_id:1,From:100,To:200},{_id:2,From:150,/**To: 300*/},{_id:3,From:210,To:230},{_id:4,From:290,To:300},{_id:5,/**From: 347,*/From:null,To:349},{_id:6,From:400,To:450}]

Query

db.collection.find({$expr:{$ne:[{$filter:{input:{$range:[201,350,1]},cond:{$and:[{$or:[{$in:[{$type:"$From"},["missing","null"]]},{$gte:["$$this","$From"]}]},{$or:[{$in:[{$type:"$To"},["missing","null"]]},{$lte:["$$this","$To"]}]}]}}},[]]}})

Result