Docs Menu
Docs Home
/ /
2 d

Crear una 2d Index

Para crear un índice geoespacial 2d, utilice el Métododb.collection.createIndex() y especifique. Utilice la siguiente sintaxis:2d

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

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

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

De forma predeterminada, un 2d índice asume longitud y latitud, y sus límites son -180 (inclusive) y 180 (no inclusive). Si los documentos contienen coordenadas fuera del rango especificado, MongoDB devuelve un error.

Importante

Los límites predeterminados permiten que las aplicaciones inserten documentos con latitudes no válidas mayores que 90 o menores que -90. El comportamiento de las consultas geoespaciales con estos puntos no válidos no está definido.

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

Puede crear un índice geoespacial 2d con un rango de ubicación distinto al predeterminado. Utilice las opciones min y max al crear el índice. Utilice 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 consulta. Las coordenadas reales de la cuadrícula siempre se utilizan en el procesamiento final de la consulta. 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 precisión mayor es que las consultas escanean porciones más pequeñas del índice para devolver los resultados.

Para configurar una precisión de ubicación distinta a la predeterminada, utilice la opción bits al crear el índice. Utilice la siguiente sintaxis:

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

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

Volver

2 d

En esta página