Índices geoespaciales

Busca 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 dbAdmin o readWrite sobre 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.

Ver también