文档数据库和SQL运算符

时间:2019-01-09 07:09:47

标签: azure-cosmosdb

我正在尝试在Azure文档数据库中运行简单的SQL查询,这是文档的外观:

enter image description here

如您所见,我将坐标存储为双精度。现在,我尝试运行简单的查询只是为了对其进行测试SELECT * FROM locations WHERE locations.Latitude.CoordinateStart <= 50.123456,但这并没有失败,但是它返回0个结果:

enter image description here

有一点我想很好,也许是我错了,因为由于限制我不能使用这么长的十进制,但是如果我将它们更改为整数(乘以100的值),我的坐标将是33644729并且查询看起来为<=50123456。在这种情况下,我仍然无法在查询中得到任何结果,得到0。这里缺少什么?

编辑:

索引策略如下

{
    "indexingMode": "consistent",
    "automatic": true,
    "includedPaths": [
        {
            "path": "/*",
            "indexes": [
                {
                    "kind": "Range",
                    "dataType": "Number",
                    "precision": -1
                },
                {
                    "kind": "Range",
                    "dataType": "String",
                    "precision": -1
                },
                {
                    "kind": "Spatial",
                    "dataType": "Point"
                }
            ]
        }
    ],
    "excludedPaths": [
        {
            "path": "/\"_etag\"/?"
        }
    ]
}

这些是默认设置,创建集合时我没有碰过它们。

1 个答案:

答案 0 :(得分:2)

尝试此查询:

SELECT * FROM locations WHERE locations.Latitude[0].CoordinateStart <= 50.123456