Índices geoespaciales
Un índice geoespacial encuentra los documentos cerca de un punto o dentro de una zona.
Busca documentos cerca de un punto o dentro de una zona con un índice 2dsphere o 2d.
Requisitos
- Un usuario con
dbAdminoreadWritesobre la base. - Las ubicaciones guardadas como GeoJSON.
Crear el índice
JavaScript
db.tiendas.createIndex({ ubicacion: "2dsphere" });Buscar cerca
JavaScript
db.tiendas.find({
ubicacion: { $near: { $geometry: { type: "Point", coordinates: [-0.376, 39.47] }, $maxDistance: 2000 } },
});Comprobar
La consulta devuelve las tiendas a menos de 2 km del punto, de la más cercana a la más lejana.
Problemas frecuentes
- Una geometría que solo toca el borde de la zona cuenta siempre como dentro.