Database
[{"_id":ObjectId("5a934e000102030405000000"),contractValue:"1200",/**This is the one stored as String. I need* to perform range query over it*/},{"_id":ObjectId("5a934e000102030405000001"),contractValue:"1500",},{"_id":ObjectId("5a934e000102030405000002"),contractValue:900,/**This is the one stored as String. I need* to perform range query over it*/},{"_id":ObjectId("5a934e000102030405000003"),contractValue:"$800",},]
Query
db.collection.aggregate([{$project:{"newContractValue":{"$convert":{"input":"$contractValue","to":"double","onError":{$toDouble:{"$substr":["$contractValue",1,{"$strLenCP":"$contractValue"}]}}}}}},{$match:{$and:[{"newContractValue":{$gt:100}},{"newContractValue":{$lt:1000}}]}}])