Upgrade to Pro — share decks privately, control downloads, hide ads and more …

MongoDB Index 2d-2dsphere

MongoDB Index 2d-2dsphere

Una introducción basica al index geoespacialde mongoDB.

Jesse cogollo

August 13, 2014
Tweet

More Decks by Jesse cogollo

Other Decks in Technology

Transcript

  1. @jessecogollo Estudiante de Ing. de sistemas en @EAFIT. Desarrollador JAVASCRIPT

    con el framework @SAILSJS. Y por supuesto en mis desarrollos utilizó en la base de datos @MONGODB.
  2. Introducción En tiempos donde los dispositivos móviles son el presente

    y el futuro(por ahora). Es importante conocer y “exprimir” las funcionalidades que estos dispositivos nos proveen. En este caso hablaremos de geolocalización. Ya que MongoDB nos proporciona una funcionalidad para manejar la longitud y latitud de una manera fácil.
  3. Contenido 1) Latitud y longitud 2) Consultas e índices geoespaciales

    MongoDB 3) GeoJSON 4) Compatibilidad (sharding) 5) Creación del índice 6) Operadores 7) where
  4. Latitud y longitud (6.199462,-75.578271) * Latitud: Norte(+) y Sur(-) *

    Longitud: Este(+) y Oeste(-) Estas son representadas en grados. pero se convierten a decimales para mejor manejo. Ejemplo: (18°14’70″ N) = (18 + (14 / 60) + (70 / 3600)) = 18.252 Precisión (decimales): 6-5: Lugares (EAFIT - 6.199462, -75.578271). 4-3: Ciudades (Medellín - 6.199,-75.578). 2-1: País (Colombia - 6.1,-75.5).
  5. Consultas e índices geoespaciales MongoDB Índices: Esfera(2dsphere.): Para calcular la

    geometría sobre la tierra. Los datos de la localización se almacenan en objetos GeoJSON WGS84. MongoDB soporta Point - LineString - Polygon. Soporta todas las consultas que MongoDB geospatial. Esfera(2dsphere) versión 2: MultiPoint - MultiLineString - MultiPolygon y GeometryCollection. Plano (2d): Legado par coordenadas [Longitud, latitud]. Este formato almacena los datos como puntos en un plano de dos dimensiones. Utilícelo si su base de datos tiene datos legados de una versión anterior a la 2.2 ó no tiene intención de almacenar los datos de localización como objetos GeoJSON. Operadores de consulta: Inclusión ($geoWithin): Permite consultar los lugares que se encuentran dentro de un polígono. Intersección ($geoIntersects): Permite consultar los lugares que se encuentran entre dos polígonos. (solo 2dsphere). Proximidad ($near): Permite consultar los puntos cerca de otros puntos. Este requiere que sea un índice 2d ó 2dsphere.
  6. Compatibilidad (sharding) * un índice (2d - 2dsphere) no puede

    ser utilizado como índice de un sharding. * Se puede crear y mantener un índice (2d - 2dsphere) en una colección “sharded” utilizando otros campos como claves del shard. * las consultas con $near no son soportadas en colecciones “sharded”. Se recomienda utilizar $geonear ó geoWithin en su lugar.
  7. ‘where’ $geometry: Especifica una geometría en formato GeoJSON para operaciones

    de consulta geoespaciales. $maxDistance: Especifica la distancia máxima para los resultados de una consulta. $center: Especifica un círculo usando par de coordenadas legadas cuando se utiliza geometría plana. $centersphere: Especifica un círculo usando par de coordenadas legadas cuando se utiliza geometría esférica. $box: Especifica un rectángulo usando par de coordenada legadas para las consultas. $polygon: Especifica un polígono usando par de coordenada legadas para las consultas. Tabla de compatibilidad: http://docs.mongodb.org/manual/reference/operator/query- geospatial/#geospatial-query-compatibility-chart
  8. Conclusión * MongoDB te facilita la vida en el manejo

    de la geolocalización. * MongoDB te optimiza el tiempo de desarrollo cuando necesitas utilizar georeferencia. * Falta mucho por descubrir en funcionalidades de MongoDB, esto apenas comienza =)