MongoDB GEO 项目场景:ms-scope 实战
在现代应用中,地理位置数据的存储和查询需求日益增长。MongoDB 提供了强大的地理空间索引和查询功能,能够高效地处理地理位置相关的数据。本文将以 ms-scope 项目为例,介绍如何利用 MongoDB 的地理空间功能实现地理数据的存储、索引和查询。
地理空间数据模型设计
MongoDB 支持两种地理空间数据模型:
- GeoJSON:一种开放标准格式,用于表示地理空间数据。
- 传统坐标对:使用
[longitude, latitude]格式存储坐标。
在 ms-scope 项目中,采用 GeoJSON 格式存储地理数据,因其标准化和灵活性更高。以下是一个示例数据模型:
{
"name": "Central Park",
"location": {
"type": "Point",
"coordinates": [-73.968285, 40.785091]
},
"category": "park"
}
location 字段是 GeoJSON 对象,type 指定几何类型(如 Point、Polygon),coordinates 存储经纬度。
地理空间索引创建
MongoDB 提供两种地理空间索引:
- 2dsphere:支持球面几何计算(如地球表面距离)。
- 2d:支持平面几何计算(适用于小范围场景)。
ms-scope 项目使用 2dsphere 索引,因其更贴近真实地球表面距离计算。创建索引的代码如下:
db.places.createIndex({ "location": "2dsphere" })
索引创建后,可高效支持地理空间查询。
地理空间查询实战
1. 附近地点查询
查找距离某坐标一定范围内的地点,使用 $near 或 $geoNear 操作符。例如
746

被折叠的 条评论
为什么被折叠?



