mongodb geoNear vs附近

Jef*_*rey 12 geospatial mongodb

看起来mongodb为地理空间查询提供了两个类似的功能 - $near$geoNear.根据mongo文档

geoNear命令提供$ near运算符的替代方法.除了$ near的功能外,geoNear还会返回其他诊断信息.

它看起来像geoNear提供了near功能的超集.例如,near似乎只返回最近的100个文档,而geoNear允许您指定最大值.是否有理由使用near而不是geoNear?一个比另一个更有效吗?

Rob*_*ore 17

效率应该相同.

geoNear主要的限制是,作为一个命令,它可以将结果集返回到最大文档大小,因为所有匹配的文档都在单个结果文档中返回.它还要求在每个结果文档中添加一个距离字段,根据您的使用情况,这可能是也可能不是问题.

$near是一个查询运算符,因此结果可能比单个文档大(它们仍然在单个响应中返回,但不在单个文档中返回).您还可以通过查询的限制()设置最大文档数.

我倾向于建议用户坚持使用,$near除非他们需要命令diagnostics(例如,距离或位置匹配)geonear.