我在mongodb中存储了[lat, lon]
对不同的位置。现在,我想按距离比较某个坐标对,例如从该点以 2 km 的圆为单位,并希望从数据库中获取所有结果。
答案 0 :(得分:0)
您应该看看geoNear命令。
通用示例如下:
db.runCommand(
{
geoNear: "places", // Your target collection
near: { type: "Point", coordinates: [ -73.9667, 40.78 ] }, // Point coordinates
spherical: true, // 2dsphere index required for using this option
query: { yourField: "someFilterVale" }, // Additional regular filtering
maxDistance: 2000 // Maximum distance in meters/radians
}
)
minDistance
也可用于查询
为此,您应该在集合中具有 2d 或 2dsphere 索引。
还有$geoNear聚合。