我在MongoDb中存储了不同位置的[lat, lon]
对。现在,我想通过距离来比较某个坐标对,比如在距离该点2公里的圆圈中,并想从数据库中获取所有结果。
您应该了解一下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聚合。