看起来MongoDB为地理空间查询提供了两个类似的功能-$near
和$geoNear
。据蒙古人记载
geonear命令提供了$near运算符的替代选项。在
除了$near的功能外,geonear还返回其他
诊断信息。
似乎geoNear
提供了near
功能的超集。例如,near
似乎只返回最近的100个文档,而geoNear
允许您指定最大值。是否有理由使用near
而不是geoNear
?一个比另一个效率高吗?
最佳答案
两者的效率应该相同。geoNear
的主要限制是,作为命令,它可以返回设置为最大文档大小的结果,因为所有匹配的文档都在单个结果文档中返回。它还要求在每个结果文档中添加一个距离字段,根据您的使用情况,这可能是问题,也可能不是问题。$near
是一个查询运算符,因此结果可以大于单个文档(它们仍然在单个响应中返回,但不是单个文档)。还可以通过查询的limit()设置最大文档数。
我倾向于建议用户坚持使用$near
除非他们需要diagnostics
命令的geonear
(例如,距离或位置匹配)。
关于mongodb - mongodb geoNear vs附近,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15537611/