Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /
2d

Crear un(a) 2d Index

Para compilar un índice geoespacial 2d, utiliza el db.collection.createIndex() método y especificar 2d. Utiliza la siguiente sintaxis:

db.<collection>.createIndex( { <location field> : "2d" ,
<additional field> : <value> } ,
{ <index-specification options> } )

El índice 2d utiliza las siguientes opciones opcionales de especificación de índice:

{ min : <lower bound> , max : <upper bound> ,
bits : <bit precision> }

Por defecto, un índice 2d asume longitud y latitud y tiene límites de -180 incluyentes y 180 no incluyentes. Si los documentos contienen datos de coordenadas fuera del rango especificado, MongoDB devuelve un error.

Importante

Los límites por defecto permiten que las aplicaciones inserten documentos con latitudes no válidas superiores a 90 o inferiores a -90. El comportamiento de las queries geoespaciales con puntos no válidos no está definido.

En los índices 2d se puede cambiar el rango de ubicación.

Puedes compilar un índice geoespacial 2d con un rango de ubicación distinto al por defecto. Usa las opciones min y max al crear el índice. Utiliza la siguiente sintaxis:

db.collection.createIndex( { <location field> : "2d" } ,
{ min : <lower bound> , max : <upper bound> } )

Por defecto, un índice 2d en legacy coordinate pairs utiliza 26 bits de precisión, lo que equivale aproximadamente a 2 pies o 60 centímetros de precisión usando el rango predeterminado de -180 a 180. La precisión se mide por el tamaño en bits de los valores de geohash usados para almacenar datos de ubicación. Puedes configurar índices geoespaciales con hasta 32 bits de precisión.

La precisión del índice no afecta la exactitud de la query. Las coordenadas reales de la cuadrícula se utilizan siempre en el procesamiento final de la query. Las ventajas de una precisión menor son una menor sobrecarga de procesamiento para las operaciones de inserción y el uso de menos espacio. Una ventaja de una mayor precisión es que las consultas analizan porciones más pequeñas del índice para devolver resultados.

Para configurar una precisión de ubicación diferente a la por defecto, usa la opción bits al crear el índice. Utiliza la siguiente sintaxis:

db.<collection>.createIndex( {<location field> : "<index type>"} ,
{ bits : <bit precision> } )

Para obtener información sobre los aspectos internos de los valores geohash, consulta Cálculo de valores Geohash para índices 2d.

Volver

2d

En esta página