Atualização (válida do MongoDB v4.0 em diante):
Você pode usar uma combinação de $expr e $toDouble para alcançar o comportamento desejado como este:
db.MyCollection.find({ $expr: { $lte: [ { $toDouble: "$Price" }, 1000.0 ] } })
Resposta original (MongoDB v3.6 e abaixo):
O MongoDB não pode converter strings em números. Portanto, sua única opção aqui é usar o temido $where operador:
db.MyCollection.find({ $where: "parseInt(this.Price) <= 1000" })
Isso não usará nenhum índice e não é exatamente rápido, mas talvez ainda seja bom para pequenas coleções.
No entanto, eu recomendaria armazenar números como tipos numéricos. Então você deve converter sua
string
s para int
s ou long
s (ou provavelmente double
s mesmo) como mostrado aqui: como converter string em valores numéricos no mongodb