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