Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用$lt和$gt的MongoDB数字精度_Mongodb_Monk - Fatal编程技术网

使用$lt和$gt的MongoDB数字精度

使用$lt和$gt的MongoDB数字精度,mongodb,monk,Mongodb,Monk,在使用(我假设)不同精度的查询时,我很难让MongoDB返回文档 以下是my DB中的示例记录: {"P_Latitude": "32.896272727272", "P_Longitude": "-109.8293454545"} 下面是一个不返回任何文档的示例查询: { "P_Latitude": { "$gt": "32.097473448554915", "$lt": "33.45585495144508" }, "P_Longi

在使用(我假设)不同精度的查询时,我很难让MongoDB返回文档

以下是my DB中的示例记录:

{"P_Latitude": "32.896272727272", "P_Longitude": "-109.8293454545"}
下面是一个不返回任何文档的示例查询:

{
    "P_Latitude": {
        "$gt": "32.097473448554915",
        "$lt": "33.45585495144508"
    },
    "P_Longitude": {
        "$lt": "-110.0001001",
        "$gt": "-99.9999999"
    }
}
但是,当我将最后一个$gt更改为大于-100的数字时,它会工作…如:

{
    "P_Latitude": {
        "$gt": "32.097473448554915",
        "$lt": "33.45585495144508"
    },
    "P_Longitude": {
        "$lt": "-110.0001001",
        "$gt": "-100.9999999"
    }
}
这是精度问题还是其他问题?它在shell和使用Monk驱动程序中的行为相同


谢谢

问题是您将
p_纬度
p_经度
值存储为字符串而不是数字。因此,比较使用的是数字顺序,而不是数字顺序

您的文档应该如下所示:

{"P_Latitude": 32.896272727272, "P_Longitude": -109.8293454545}
然后像这样询问:

{
    "P_Latitude": {
        "$gt": 32.097473448554915,
        "$lt": 33.45585495144508
    },
    "P_Longitude": {
        "$gt": -110.0001001,
        "$lt": -99.9999999
    }
}

成功了!谢谢虽然为了使查询现在能够工作,我需要切换经度的$lt和$gt:`“P_经度”:{“$gt”:-110.0001001,“$lt”:-99.999999}`@MartinSpriggs Good point,edited。另外,一定要查看可用的,以使按位置查询更有效。