Actualización (válida desde MongoDB v4.0 en adelante):
Puede usar una combinación de $expr y $toDouble para lograr el comportamiento deseado como este:
db.MyCollection.find({ $expr: { $lte: [ { $toDouble: "$Price" }, 1000.0 ] } })
Respuesta original (MongoDB v3.6 y anterior):
MongoDB no puede convertir cadenas en números. Entonces, su única opción aquí es usar el temido $where operador:
db.MyCollection.find({ $where: "parseInt(this.Price) <= 1000" })
Esto no usará ningún índice y no es exactamente rápido, pero tal vez esté bien para colecciones pequeñas.
No obstante, recomendaría almacenar números como tipos numéricos. Entonces deberías convertir tu string
s a int
s o long
s (o probablemente double
s incluso) como se muestra aquí:cómo convertir cadenas a valores numéricos en mongodb