我正在尝试执行此查询
myColection.list(num)=>{
return value
.find({"ATOMIC_WEIGHT":{$gt:num}})
.exec()
}
,但无法正常运行。 例如,在ATOMIC_WEIGHT字段中,字符串存储为“ 205”和“ 74.5524”,但是如果我要检索ATOMIC_WEIGHT大于200的所有文档,则可以很好地处理数字为整数但数字为小数的字符串即使它们小于200也是如此。
查看图片以更好地了解
答案 0 :(得分:1)
您不能对字符串执行大于或小于查询。它用于数字。如果对字符串执行查询,则它将根据ascii值执行操作。在浏览器控制台 '73 .5555'<'200'中尝试此操作。它将返回false。您需要在数据库中将原子量存储为数字。这是正确的方法。
答案 1 :(得分:0)
这可能会解决您的问题
我也遇到了同样的问题
如果我给$ gt Number类型值,它可以工作,但String类型值不能工作。
db.getCollection('user').count({balance:{ $gt:10}})
最后,我用
db.getCollection('user').count("this.balance > 10")
您可以尝试
myColection.list(num)=>{
return value
.find("this.ATOMIC_WEIGHT > 10)
.exec()
}