如何在MongoDB中测量$ maxDistance?

cbm*_*eks 11 geospatial mongodb

我似乎无法找到这些信息.但是使用地理搜索你可以指定$maxDistance但是对于我的生活,我无法找到它是英里,公里等.

这是我正在使用的示例查询:

db.hotels.find( { location: { $near : [18.74255, 99.03523], $maxDistance : 0.05 } } ).count()
Run Code Online (Sandbox Code Playgroud)

返回15(来自我的酒店数据库).

感谢您提供任何信息.

Joh*_*ess 21

除非您正在进行球形查询(例如$nearSphere),否则MongoDB实际上并不关心单位,它只是将您的位置视为笛卡尔坐标.

因此,计算出的距离将与输入单位无关.由于您的$near观点看起来像标准纬度/经度,因此$maxDistance在这种情况下将以度为单位.

  • 更确切地说,因为我刚刚研究了这个,这显然可以帮助未来的游客,实际的公式是:1°纬度= 69.047英里= 111.12公里 (11认同)
  • 这不是确切的,但是对于粗略的转换,你可以将所需的距离以公里为单位除以111.(对于英里,你将除以约69.) (2认同)