Importante
Eliminado en MongoDB 5.0
MongoDB 5.0 elimina el índice obsoleto geoHaystack y el comando geoSearch. Utilice un 2d índice con $geoNear o uno de los operadores del query geoespacial soportados.
Actualizar su instancia de MongoDB a 5.0 y configurar featureCompatibilityVersion en 5.0 eliminará cualquier índice geoHaystack preexistente.
Un índice geoHaystack es un índice especial optimizado para devolver resultados en áreas pequeñas. Los índices geoHaystack mejoran el rendimiento en las consultas que utilizan geometría plana.
Para consultas que utilicen geometría esférica, un índice 2dsphere es una mejor opción que un índice haystack. Los índices 2dsphere permiten el reordenamiento de campos; geoHaystack Los índices requieren que el primer campo sea el campo de ubicación. Además, los índices geoHaystack solo se pueden utilizar mediante comandos, por lo que siempre devuelven todos los resultados a la vez.
Comportamiento
geoHaystack los índices crean "grupos" de documentos de la misma zona geográfica para mejorar el rendimiento de las consultas restringidas a esa zona. Cada bucket en un índice geoHaystack contiene todos los documentos dentro de una proximidad especificada a una longitud y latitud dadas.
sparse Propiedad
geoHaystack los índices son dispersos por defecto e ignoran la opción disperso: true. Si a un documento le falta un campo de índice geoHaystack (o el campo es null o un arreglo vacío), MongoDB no agrega una entrada para el documento en el índice geoHaystack. Para inserciones, MongoDB inserta el documento pero no lo añade al índice geoHaystack.
geoHaystack los índices incluyen una clave de índice geoHaystack y una clave de índice no geoespacial; sin embargo, solo el campo de índice geoHaystack determina si el índice hace referencia a un documento.
Opción de intercalación
geoHaystack los índices sólo admiten comparación binaria simple y no admiten la intercalación.
Para crear un índice geoHaystack en una colección que tenga una intercalación no simple, debes especificar explícitamente {collation: {locale: "simple"}
} al crear el índice.
Crear geoHaystack índice
Para crear un geoHaystack índice, consulte Crear un índice Haystack. Para obtener información y un ejemplo sobre cómo consultar un índice Haystack,consulte Consultar un índice Haystack.