Los índices geoespaciales admiten consultas sobre datos almacenados como Objetos GeoJSON o pares de coordenadas heredados. Puedes usar índices geoespaciales para mejorar el rendimiento de las queries sobre datos geoespaciales o para ejecutar ciertas queries geoespaciales.
MongoDB proporciona dos tipos de índices geoespaciales:
Índices 2dsphere, que admiten consultas que interpretan la geometría de una esfera.
Índices 2d, que admiten consultas que interpretan la geometría sobre una superficie plana.
Para aprender más sobre datos y operaciones de query geoespaciales, consulta Queries geoespaciales.
Casos de uso
Si tu aplicación consulta frecuentemente un campo que contiene datos geoespaciales, puedes crear un índice geoespacial para mejorar el rendimiento de esas queries.
Ciertas operaciones de query requieren un índice geoespacial. Si deseas query con el $near o $nearSphere operadores o la etapa de agregación $geoNear, debes crear un índice geoespacial. Para obtener detalles, consulte operadores del query geoespaciales y Etapa de agregación geoespacial.
Por ejemplo, considere una colección de subway con documentos que contengan un campo location, que especifique las coordenadas de las estaciones de metro en una ciudad. Suele ejecutar consultas con el operador $geoWithin para devolver una lista de estaciones dentro de un área específica. Para mejorar el rendimiento de esta query, puedes crear un índice geoespacial en el campo location. Después de crear el índice, puedes utilizar el operador $near query para devolver una lista de estaciones cercanas, ordenadas de la más cercana a la más lejana.
Empezar
Para crear un índice geoespacial y ejecutar consultas geoespaciales, consulte:
Detalles
Esta sección describe detalles acerca de los índices geoespaciales.
Colecciones fragmentadas
No se puede utilizar un índice geoespacial como clave de partición al fragmentar una colección. Sin embargo, puedes crear un índice geoespacial en una colección particionada utilizando un campo diferente como clave de partición.
Puede usar los operadores del query geoespaciales y las etapas de agregación para consultar datos geoespaciales en colecciones particionadas.
Consultas cubiertas
Los índices geoespaciales no pueden cubrir una query.
Consultas esféricas
Utilizar un índice 2d para queries sobre datos esféricos puede devolver resultados incorrectos o un error. Por ejemplo, los índices 2d no admiten "queries" esféricas que envuelven los polos.
Sin embargo, puedes usar el índice 2dsphere tanto para consultas esféricas como para consultas bidimensionales. Para consultas bidimensionales, el índice 2dsphere convierte los datos almacenados como legacy coordinate pairs al tipo punto GeoJSON.
Obtén más información
Para ver ejemplos de operaciones de consulta geoespacial, consulte Ejemplos de consultas geoespaciales.