Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Definir el rango de ubicación para un índice 2d

Puede definir el rango de coordenadas incluido en una 2d índice. Por defecto, los índices 2d tienen límites de longitud y latitud de:

  • Mayor o igual que -180

  • Menos de 180

Para cambiar el rango de ubicación de un índice 2d, especifica las opciones min y max cuando crees el índice:

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

Los límites min y max son inclusivos y se aplican tanto a la longitud como a la latitud.

Importante

Los límites de ubicación por defecto para los índices 2D permiten latitudes inferiores a -90 y superiores a 90, que son valores no válidos. El comportamiento de las consultas geoespaciales con estos puntos no válidos no está definido.

Definir un rango de ubicación más pequeño para un índice 2D reduce la cantidad de datos almacenados en el índice, y puede mejorar el rendimiento de las query.

No se puede crear un índice 2d si la colección contiene datos de coordenadas fuera del rango de ubicación del índice.

Después de crear un índice 2d, no se puede insertar un documento que contenga datos de coordenadas fuera del rango de ubicación del índice.

Crear la colección contacts:

db.contacts.insertMany( [
{
name: "Evander Otylia",
phone: "202-555-0193",
address: [ 55.5, 42.3 ]
},
{
name: "Georgine Lestaw",
phone: "714-555-0107",
address: [ -74, 44.74 ]
}
] )

El campo address contiene legacy coordinate pairs.

Crea un índice en 2D en el campo address. Especifique los siguientes límites de ubicación:

  • min límite de -75

  • max límite de 60

db.contacts.createIndex(
{
address: "2d"
},
{
min: -75,
max: 60
}
)

El índice cubre un rango de ubicación menor y tiene un mejor rendimiento que un índice 2D por defecto.

Después de crear el índice, no se puede insertar un documento que contenga datos de coordenadas fuera del rango de ubicación del índice. Por ejemplo, no se puede insertar el siguiente documento:

db.contacts.insertOne(
{
name: "Paige Polson",
phone: "402-555-0190",
address: [ 70, 42.3 ]
}
)

El campo address tiene un valor de longitud de 70, que es mayor que el límite max de 60.

Puedes usar el índice 2d para realizar cálculos sobre datos de ubicación, como consultas de proximidad.

Volver

Precisión de la ubicación

En esta página