看起来 mongodb 为地理空间查询提供了两个类似的函数 - $near 和 $geoNear。根据 mongo 文档
The geoNear command provides an alternative to the $near operator. In addition to the functionality of $near, geoNear returns additional diagnostic information.
看起来 geoNear 提供了 near 功能的超集。例如,near 似乎只返回最接近的 100 个文档,而 geoNear 允许您指定最大值。是否有理由使用 near 而不是 geoNear?一个比另一个更有效吗?
最佳答案
两者的效率应该相同。
geoNear 的主要限制是,作为命令,它可以返回设置为最大文档大小的结果,因为所有匹配的文档都在单个结果文档中返回。它还要求在每个结果文档中添加一个距离字段,这可能是也可能不是问题,具体取决于您的使用情况。
$near 是一个查询运算符,因此结果可以大于单个文档(它们仍然在单个响应中返回,但不是单个文档)。您还可以通过查询的 limit() 设置最大文档数。
我倾向于建议用户坚持使用 $near,除非他们需要来自 geonear命令。诊断(例如,距离或位置匹配)
关于mongodb geoNear vs near,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15537611/