A geoHaystack index is a special index that is optimized to return
results over small areas. geoHaystack indexes improve performance
on queries that use flat geometry.

For queries that use spherical geometry, a 2dsphere index is a better
option than a haystack index. 2dsphere indexes allow field reordering; geoHaystack indexes
require the first field to be the location field. Also, geoHaystack
indexes are only usable via commands and so always return all results
at once.

geoHaystack indexes create “buckets” of documents from the same
geographic area in order to improve performance for queries limited to
that area. Each bucket in a geoHaystack index contains all the
documents within a specified proximity to a given longitude and
latitude.

geoHaystack indexes are sparse by
default and ignore the sparse: true
option. If a document lacks a geoHaystack index field (or the field
is null or an empty array), MongoDB does not add an entry for the
document to the geoHaystack index. For inserts, MongoDB inserts the
document but does not add to the geoHaystack index.

geoHaystack indexes include one geoHaystack index key and one
non-geospatial index key; however, only the geoHaystack index field
determines whether the index references a document.