Актуализация (валидна от MongoDB v4.0 нататък):
Можете да използвате комбинация от $expr и $toDouble за постигане на желаното поведение по следния начин:
db.MyCollection.find({ $expr: { $lte: [ { $toDouble: "$Price" }, 1000.0 ] } })
Оригинален отговор (MongoDB v3.6 и по-долу):
MongoDB не може да конвертира низове в числа. Така че единствената ви възможност тук е да използвате страховития $where оператор:
db.MyCollection.find({ $where: "parseInt(this.Price) <= 1000" })
Това няма да използва никакви индекси и не е много бързо, но може би е добре за малки колекции.
Въпреки това бих препоръчал да съхранявате числа като числови типове. Така че трябва да конвертирате своя string
s към int
s или long
s (или вероятно double
s even), както е показано тук: как да конвертирате низ в числени стойности в mongodb