Utilice un 2d
índice para los datos almacenados como puntos en un plano bidimensional. El 2d
índice está diseñado para pares de coordenadas heredados utilizados en MongoDB 2.2 y versiones anteriores.
Utilice un 2d
índice si:
- su base de datos tiene pares de coordenadas heredados heredados de MongoDB 2.2 o anterior, y
- no tiene la intención de almacenar ningún dato de ubicación como objetos GeoJSON .
Para obtener más información sobre consultas geoespaciales, consulte Consultas geoespaciales .
A partir de MongoDB 4.0, puede especificar una key
opción en la $geoNear
etapa de canalización para indicar la ruta del campo indexado que se utilizará. Esto permite que el $geoNear
escenario se use en una colección que tiene múltiples 2d
índices y / o múltiples índices de 2dsphere :
- Si su colección tiene múltiples
2d
índices y / o múltiples índices de 2dsphere , debe usar lakey
opción para especificar la ruta del campo indexado a usar. - Si no especifica el
key
, no puede tener un2d
índice múltiple y / o un índice 2dsphere múltiple, ya que sin elkey
, la selección de índice entre varios2d
índices o2dsphere
índices es ambigua.
NOTA
Si no especifica el key
, y tiene como máximo solo un 2d
índice de índice y / o solo un 2d
índice de índice, MongoDB busca primero un 2d
índice para usar. Si 2d
no existe un índice, MongoDB busca un 2dsphere
índice para usar.
No utilice un 2d
índice si sus datos de ubicación incluyen objetos GeoJSON. Para indexar tanto los pares de coordenadas heredados como los objetos GeoJSON , use un índice 2dsphere .
No puede utilizar un 2d
índice como clave de fragmentación al fragmentar una colección. Sin embargo, puede crear un índice geoespacial en una colección fragmentada utilizando un campo diferente como clave de fragmentación.
El 2d
índice admite cálculos en un plano euclidiano plano . El 2d
índice también admite cálculos de solo distancia en una esfera (p . Ej . $nearSphere
), Pero para cálculos geométricos en una esfera (p $geoWithin
. Ej. ), Almacene los datos como objetos GeoJSON y use un 2dsphere
índice.
Un 2d
índice puede hacer referencia a dos campos. El primero debe ser el campo de ubicación. Un 2d
índice compuesto crea consultas que seleccionan primero en el campo de ubicación y luego filtra esos resultados según los criterios adicionales. Un 2d
índice compuesto puede cubrir consultas.
2d
los índices son siempre escasos e ignoran la opción escasa . Si un documento carece de un 2d
campo de índice (o el campo es null
una matriz vacía), MongoDB no agrega una entrada para el documento al 2d
índice. Para inserciones, MongoDB inserta el documento pero no lo agrega al 2d
índice.
Para un índice compuesto que incluye una 2d
clave de índice junto con claves de otros tipos, solo el 2d
campo de índice determina si el índice hace referencia a un documento.
2d
los índices solo admiten la comparación binaria simple y no admiten la opción de clasificación .
Para crear un 2d
índice en una colección que tiene una intercalación no simple, debe especificar explícitamente {collation: {locale: "simple"} }
al crear el índice.