Mongo $gt、$lt 查询不适用于 NumberInt

Mongo $gt, $lt query not working for NumberInt

这是我的截图, 我不明白为什么有时将值存储为数字,有时存储为 NumberInt。

当我尝试使用此查询进行搜索时

{
    "price.egglessPrice" : { '$gt' : 360, '$lt':370}
}

我总是得到包括上面截图在内的结果。但这不是正确的答案。没有价格在360到370之间。

数字值的不同数据类型背后的原因取决于您存储值的方式。你必须在这里使用 $elemMatch 来匹配结果:

db.collection.find({
    price: {
        $elemMatch: {egglessPrice: { $gt: 360, $lt: 370}}
    }
});