MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Comment MongoDB implémente-t-il ses index spatiaux ?

Cette présentation de Greg Studer (10gen) aborde les index géospatiaux en détail :Geospatial Indexation avec MongoDB .

L'implémentation géospatiale standard de MongoDB 2.2 utilise un GeoHash 2-D approche, avec des bits de précision variables :

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.

L'approche GeoHash a des cas extrêmes où certains points peuvent être spatialement proches mais avoir des hachages différents. MongoDB inclut également un Index Geospatial Haystack qui est spécifiquement réglé pour les recherches longues/latines « proches » dans les petites régions avec un critère indexé supplémentaire (par exemple :« trouver tous les restaurants dans un rayon de 25 miles avec le nom « foo » »).

Une autre présentation intéressante de Nicholas Knize (Thermopylae) met en contraste l'approche actuelle B-tree / GeoHash avec R- arbres . Si vous passez directement à la diapositive 8, une explication visuelle peut être utile :Indexation spatiale RTree avec MongoDB - MongoDC .