cosmosdb地理空间查询返回空白

时间:2018-12-12 19:54:39

标签: node.js azure-cosmosdb-mongoapi

我正在使用cosmosDB进行$ geowithin查找,当我在cosmosdb数据资源管理器中运行查询时,它可以正常工作并返回正确的设置。当我使用MongoClient在node js中运行它时,我得到一个空集。

这是我在cosmosdb数据浏览器中运行的查询:

   {CurrentLoc: {
            $geoWithin: {
                $centerSphere: [[-122.0312186,37.33233141], 0.0025232135647961246]
            }
        }}

返回了正确的文档列表

这是在我的节点应用中:

var toFind = {
        CurrentLoc: {
            $geoWithin: {
                $centerSphere: [currentLoc, maxDistance]
            }
        }
    }


    var query = db.collection('User').find(toFind)
    query.toArray(function (err, doc, queryResult) {
      logger.debug ('result: ' + JSON.stringify(doc);
})

这将返回一个空白集,并且不会获取数据。为什么它会返回不同的东西,为什么它还是空白?

1 个答案:

答案 0 :(得分:0)

您可能需要将currentLoc变量分解为两个值的数组,因此查询的结构与通过 CosmosDB Data Explorer 执行时的方式相同:

[-122.0312186,37.33233141] $centerSphere: [[-122.0312186,37.33233141], 0.0025232135647961246]

希望有帮助!