$ gt未检索当前值

时间:2019-01-25 11:04:52

标签: mongodb

我正在尝试执行此查询

myColection.list(num)=>{
return value
    .find({"ATOMIC_WEIGHT":{$gt:num}}) 
    .exec()
}

,但无法正常运行。 例如,在ATOMIC_WEIGHT字段中,字符串存储为“ 205”和“ 74.5524”,但是如果我要检索ATOMIC_WEIGHT大于200的所有文档,则可以很好地处理数字为整数但数字为小数的字符串即使它们小于200也是如此。

查看图片以更好地了解

https://imgur.com/a/0wXerXE

2 个答案:

答案 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()
}