MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como o MongoDB implementa seus índices espaciais?


Esta apresentação de Greg Studer (10gen) discute os índices geoespaciais em detalhes:Geospatial Indexação com MongoDB .

A implementação geoespacial padrão como no MongoDB 2.2 usa um 2-D GeoHash 2-D abordagem, com bits variáveis ​​de precisão:
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.

A abordagem GeoHash tem casos extremos em que alguns pontos podem estar espacialmente próximos, mas têm hashes diferentes. O MongoDB também inclui um Geospatial Haystack Index que é especificamente ajustado para pesquisas "perto" de longa/latência em regiões pequenas com um critério indexado adicional (por exemplo:"encontrar todos os restaurantes em um raio de 25 milhas com o nome 'foo'").

Outra apresentação interessante de Nicholas Knize (Thermopylae) contrasta a atual abordagem B-tree / GeoHash com R- árvores . Se você pular para o slide 8, há uma explicação visual que pode ser útil:Indexação espacial RTree com MongoDB - MongoDC .