Docs Menu
Docs Home
/ /
2 d

Consultar una 2d Index

Las siguientes secciones describen las consultas admitidas por el índice 2d.

Para seleccionar todos los pares de coordenadas heredados que se encuentran dentro de una forma determinada en una superficie plana, utilice el $geoWithin Operador junto con un operador de forma. Utilice la siguiente sintaxis:

db.<collection>.find( { <location field> :
{ $geoWithin :
{ $box|$polygon|$center : <coordinates>
} } } )

Las siguientes consultas buscan documentos dentro de un rectángulo definido por [ 0 , 0 ] en la esquina inferior izquierda y por [ 100 , 100 ] en la esquina superior derecha.

db.places.find( { loc :
{ $geoWithin :
{ $box : [ [ 0 , 0 ] ,
[ 100 , 100 ] ]
} } } )

Las siguientes consultas para documentos que están dentro del círculo centrado en [ -74 , 40.74 ] y con un radio de 10:

db.places.find( { loc: { $geoWithin :
{ $center : [ [-74, 40.74 ] , 10 ]
} } } )

Para conocer la sintaxis y los ejemplos de cada forma, consulte lo siguiente:

  • $box

  • $polygon

  • $center (define un círculo)

MongoDB admite queries esféricas rudimentarias en índices planos 2d por razones heredadas. En general, los cálculos esféricos deben utilizar un índice 2dsphere, como se describe en 2dsphere Indexes.

Para consultar legacy coordinate pairs en una "cúpula esférica" sobre una esfera, utiliza $geoWithin con el operador $centerSphere. Especifica un arreglo que contenga:

Utilice la siguiente sintaxis:

db.<collection>.find( { <location field> :
{ $geoWithin :
{ $centerSphere : [ [ <x>, <y> ] , <radius> ] }
} } )

La siguiente consulta de ejemplo devuelve todos los documentos dentro de un radio de 10millas de longitud 88 W y latitud 30 N. El ejemplo convierte la distancia a radianes dividiendo la distancia entre el radio ecuatorial aproximado de la Tierra, 3963.2 millas:

db.<collection>.find( { loc : { $geoWithin :
{ $centerSphere :
[ [ 88 , 30 ] , 10 / 3963.2 ]
} } } )

Las consultas de proximidad devuelven los pares de coordenadas heredados más cercanos al punto definido y ordenan los resultados por distancia. Utilice el operador. El operador requiere $near un 2d índice.

El operador utiliza la siguiente $near sintaxis:

db.<collection>.find( { <location field> :
{ $near : [ <x> , <y> ]
} } )

Para ver ejemplos,$near consulte.

No se puede usar un índice 2d para obtener una coincidencia exacta de un par de coordenadas. Use un índice escalar, ascendente o descendente, en un campo que almacene coordenadas para obtener coincidencias exactas.

En el siguiente ejemplo, la operación devolverá una coincidencia exacta en una ubicación si tiene find() un { 'loc': 1} índice:

db.<collection>.find( { loc: [ <x> , <y> ] } )

Esta consulta devolverá cualquier documento con el valor [ <x> , <y> ].

Volver

Crear un índice 2d

En esta página