0

我正在使用 cosmosDB 进行 $geowithin 查找,当我在 cosmosdb 数据资源管理器中运行查询时,它工作正常并返回正确的集合。当我使用 MongoClient 在节点 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);
})

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

4

1 回答 1

0

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

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

希望能帮助到你!

于 2018-12-13T06:33:02.820 回答