Los índices 2dsphere admiten consultas geoespaciales en una esfera similar a la tierra. Por ejemplo, los índices 2dsphere pueden:
Determina los puntos dentro de un área especificada.
Calcular la proximidad a un punto especificado.
Devolver coincidencias exactas en consultas de coordenadas.
Para crear un índice 2dsphere, utiliza el método db.collection.createIndex() y especifica la string "2dsphere" como el tipo de índice:
db.<collection>.createIndex( { <location field> : "2dsphere" } )
Los valores en el <location field> deben ser uno de los siguientes:
Antes de comenzar
Crea una colección places que contenga estos documentos:
db.places.insertMany( [ { loc: { type: "Point", coordinates: [ -73.97, 40.77 ] }, name: "Central Park", category : "Park" }, { loc: { type: "Point", coordinates: [ -73.88, 40.78 ] }, name: "La Guardia Airport", category: "Airport" }, { loc: { type: "Point", coordinates: [ -1.83, 51.18 ] }, name: "Stonehenge", category : "Monument" } ] )
Los valores en el campo loc son puntos GeoJSON.
Procedimiento
La siguiente operación crea un índice 2dsphere en el campo de ubicación loc:
db.places.createIndex( { loc : "2dsphere" } )
Próximos pasos
Después de crear un índice 2dsphere, puedes utilizar el índice para queries geoespaciales. Para saber más, consulta query un índice 2dsphere.