Utiliza un índice 2d para 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 elemento key, y tienes como máximo solo un índice de elemento 2d y/o solo un índice de elemento 2d, MongoDB primero busca un índice 2d para usar. Si un índice 2d no existe, MongoDB busca un índice 2dsphere para usar.
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 puedes utilizar un índice 2d como una clave de partición al fragmentar una colección. Sin embargo, puedes crear un índice geoespacial en una colección particionada utilizando un campo diferente como la clave de partición.
Comportamiento
El índice 2d admite cálculos en un plano euclidiano plano. El índice 2d también soporta cálculos solamente de distancia en una esfera (es decir, $nearSphere), pero para cálculos geométricos en la esfera (por ejemplo, " $geoWithin), almacenar los datos como objetos GeoJSON y usar un índice 2dsphere.
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 sólo admiten comparaciones binarias simples 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.