sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Cómo implementa MongoDB sus índices espaciales?

Esta presentación de Greg Studer (10gen) analiza los índices geoespaciales con cierto detalle:Geospatial Indexación con MongoDB .

La implementación geoespacial estándar de MongoDB 2.2 utiliza un GeoHash 2-D enfoque, con bits variables de precisión:

By default, precision is set to 26 bits which is equivalent to approximately
2 feet given (longitude, latitude) location values and default (-180, 180)
bounds.

El enfoque de GeoHash tiene casos extremos en los que algunos puntos pueden estar espacialmente cerca pero tienen hashes diferentes. MongoDB también incluye un Geospatial Haystack Index que está específicamente ajustado para búsquedas largas/latitud "cercanas" en regiones pequeñas con un criterio indexado adicional (por ejemplo:"buscar todos los restaurantes dentro de 25 millas con el nombre 'foo'").

Otra presentación interesante de Nicholas Knize (Thermopylae) contrasta el enfoque actual de B-tree/GeoHash con R- árboles . Si salta a la diapositiva 8, hay una explicación visual que puede ser útil:Indización espacial RTree con MongoDB - MongoDC .