2011-03-25 17 views
16

Tengo un conjunto de documentos, cada uno de los cuales contiene un punto en 3 espacios almacenado en una colección MongoDB. MongoDB actualmente tiene índices geoespaciales solo para 2 espacios. ¿Hay alguna manera de aprovechar el Índice Geospacial para hacer consultas similares en datos de 3 espacios?Uso del índice Geospacial de MongoDB con datos en 3D

+0

¿Quieres decir que en lugar de x quieres x, y, z? –

+4

+1 - Ni siquiera sabía que Mongo tenía un índice geoespacial .. –

+0

Tiene un modelo esférico y de caja para geoespacial, el modelo de caja no es tan útil para los tipos de SIG de núcleo duro, pero es divertido jugar con aplicaciones de ubicación . –

Respuesta

1

Podría reducirla comprimiendo una de las dimensiones, pero perdería la mitad de su precisión.

Di si fueran claves de 64 bits y que querían almacenar tres de 32 bits coordina: [(x < < 32) + y, z]

Heck, incluso se puede intercalar tres y almacenarla en una clave:

xxx

yyy

zzz

xyzxyzyz

+1

Creo que esto arruinaría el concepto de "cerca" que se usa el índice Geospacial, ¿no es así? –

+0

Sí y no. Si configura los bits bajos de la dimensión aplastada con la variable que es más aleatoria, debería estar bien. El segundo truco de los bits de intercalación es ideal para mezclar una cantidad arbitraria de dimensiones en una sola. –

+0

Realmente no entiendo esto. ¿Cómo funcionaría realmente esto en el código shell de MongoDB JavaScript? ¿Podría proporcionar un ejemplo de cómo definir el índice y una consulta de muestra? ¡Gracias! Además, ¿cómo harías esto ?: http://stackoverflow.com/questions/6003943/mongodb-find-most-recent-closest-posts-limit-20 – ma11hew28

Cuestiones relacionadas