MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

In che modo MongoDB implementa i suoi indici spaziali?

Questa presentazione di Greg Studer (10gen) discute gli indici geospaziali in dettaglio:Geospatial Indicizzazione con MongoDB .

L'implementazione geospaziale standard come in MongoDB 2.2 utilizza un GeoHash 2-D approccio, con bit di precisione variabili:

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'approccio GeoHash ha casi limite in cui alcuni punti possono essere spazialmente vicini ma hanno hash diversi. MongoDB include anche un Geospatial Haystack Index che è specificamente ottimizzato per le ricerche long/lat "vicino" di piccole regioni con un criterio indicizzato aggiuntivo (ad esempio:"trova tutti i ristoranti entro 25 miglia con il nome 'pippo'").

Un'altra presentazione interessante di Nicholas Knize (Thermopylae) contrasta l'attuale approccio B-tree / GeoHash con R- alberi . Se passi alla diapositiva 8, c'è una spiegazione visiva che potrebbe essere utile:Indicizzazione spaziale Rtree con MongoDB - MongoDC .