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

时间:2015-09-29 11:23:00

标签: php mongodb laravel-5 jenssegers-mongodb

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

enter image description here

当我尝试此搜索查询时

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

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

1 个答案:

答案 0 :(得分:1)

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

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