Utilice un índice 2d para los datos almacenados como puntos en un plano bidimensional. El índice 2d está destinado a legacy coordinate pairs usados en MongoDB 2.2 y anteriores.
Utiliza un índice 2d si:
tu base de datos tiene pares de coordenadas antiguos de MongoDB 2.2 o anterior, y
no tienes la intención de almacenar ningún dato de ubicación como objetos GeoJSON.
Para obtener más información sobre consultas geoespaciales, consulta Consultas geoespaciales.
Considerations
Puedes especificar una opción de key en la $geoNear etapa del pipeline para indicar la ruta del campo indexado a utilizar. Esto permite que la etapa $geoNear sea utilizada en una colección que tiene múltiples índices 2d y/o múltiples 2d índice de esfera:
Si tu colección tiene múltiples
2díndices y/o múltiples índices 2dsphere, debes usar la opciónkeypara especificar la ruta de campo indexado que se utilizará.Si no especificas el
key, no puedes tener múltiples índices2dy/o múltiples índices 2dsphere ya que sin elkey, la selección del índice entre múltiples2díndices o2dsphereíndices es ambigua.
Nota
Si no especificas el key, y tienes como máximo solo un 2d índice y/o solo un índice 2dsphere, MongoDB buscará primero un 2d índice para usar. Si un índice 2d no existe, entonces MongoDB busca un índice 2dsphere para utilizar.
No use un índice 2d si sus datos de ubicación incluyen objetos GeoJSON. Para indexar en ambos pares de coordenadas heredadas y objetos GeoJSON, utiliza un índice 2dsphere.
No se puede usar un 2d índice como clave de fragmento al fragmentar una colección. Sin embargo, se puede crear un índice geoespacial en una colección fragmentada usando un campo diferente como clave de fragmento.
Comportamiento
El 2d índice admite cálculos en un plano euclidiano. El 2d índice también admite cálculos de solo distancia en una esfera (p. $nearSphere ej.,), pero para cálculos geométricos en una esfera (p. $geoWithin ej.,), almacene los datos como objetos GeoJSON y use un 2dsphere índice.
Un índice 2d puede hacer referencia a dos campos. La primera debe ser el campo de ubicación. Un índice compuesto 2d construye consultas que seleccionan primero en el campo de ubicación y luego filtran esos resultados por los criterios adicionales. Un índice compuesto 2d puede cubrir consultas.
sparse Propiedad
2d los índices siempre son dispersos e ignoran la opción dispersa. Si a un documento le falta un campo de índice 2d (o el campo es null o es un arreglo vacío), MongoDB no agrega una entrada para el documento en el índice 2d. Para las inserciones, MongoDB inserta el documento pero no lo agrega al índice 2d.
Para un índice compuesto que incluye un índice clave 2d junto con índices de otros tipos, sólo el campo índice 2d determina si el índice hace referencia a un documento.
Opción de intercalación
2d Los índices solo admiten la comparación binaria simple y no admiten la opción de intercalación.
Para crear un índice 2d en una colección que tenga una intercalación no simple, debes especificar explícitamente {collation: {locale: "simple"}
} al crear el índice.