我正在使用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);
})
这将返回一个空白集,并且不会获取数据。为什么它会返回不同的东西,为什么它还是空白?
答案 0 :(得分:0)
您可能需要将currentLoc
变量分解为两个值的数组,因此查询的结构与通过 CosmosDB Data Explorer 执行时的方式相同:
[-122.0312186,37.33233141] 在
$centerSphere: [[-122.0312186,37.33233141], 0.0025232135647961246]
希望有帮助!