这是我的截图 我不明白为什么有时候将值存储为数字,有时候存储为NumberInt。
当我尝试此搜索查询时
{
"price.egglessPrice" : { '$gt' : 360, '$lt':370}
}
我总是得到包括上面截图的结果。但这不是正确的问题。 360至370之间没有价格。
答案 0 :(得分:1)
数字值的不同数据类型背后的原因取决于您存储值的方式。您必须在此处使用$elemMatch来匹配结果:
db.collection.find({
price: {
$elemMatch: {egglessPrice: { $gt: 360, $lt: 370}}
}
});