更新(MongoDB v4.0以降で有効):
$expr
を組み合わせて使用できます および
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偶数)ここに示すように: mongodbで文字列を数値に変換する方法