mongodb geoNear vs near

geospatial, mongodb

Solution

Efficiency should be identical for either.

`geoNear`'s major limitation is that as a command it can return a result set up to the maximum document size as all of the matched documents are returned in a single result document. It also requires that a distance field be added to each result document which may or may not be an issue depending on your usage.

`$near` is a query operator so the results can be larger than a single document (they are still returned in a single response but not a single document). You can also set the maximum number of documents via the query's limit().

I tend to recommend that users stick with the `$near` unless they need the `diagnostics` (e.g., distance, or location matched) from the `geonear` command.

Problem

It looks like mongodb offers two similar functions for geospatial queries - `$near` and `$geoNear`. According to the mongo docs The geoNear command provides an alternative to the $near operator. In addition to the functionality of $near, geoNear returns additional diagnostic information. It looks like `geoNear` provides a superset of the `near` functionality. For example, `near` seems to only return the closest 100 documents, whereas `geoNear` lets you specify a maximum. Is there a reason to use `near` instead of `geoNear`? Is one more efficient than the other?

Original source