MongoDB GEO 项目场景 ms-scope 实战
MongoDB 的地理空间(GEO)功能在位置服务、地图应用和空间数据分析中具有广泛应用。结合 ms-scope(微服务范围)的实战场景,可以实现高并发、低延迟的地理查询服务。以下从索引设计、查询优化和微服务集成三方面展开。
地理空间索引设计
MongoDB 支持两种地理空间索引:2dsphere 和 2d。2dsphere 适用于球面几何计算,支持 GeoJSON 格式数据;2d 适用于平面坐标计算,适合小范围场景。
// 创建 2dsphere 索引
db.places.createIndex({ location: "2dsphere" });
// 插入 GeoJSON 数据示例
db.places.insertOne({
name: "Central Park",
location: {
type: "Point",
coordinates: [-73.968285, 40.785091]
}
});
对于 ms-scope 微服务场景,建议使用 2dsphere 索引,因其支持复杂查询(如多边形范围、距离计算)且兼容 WGS84 坐标系。
地理空间查询实战
MongoDB 提供 $geoNear、$geoWithin 和 $near 等操作符,以下为常见查询示例:
1. 附近地点查询
db.places.aggregate([
{
$geoNear: {
near: { type: "Point", coordinates: [-73.9667, 40.78] },
distanceField: "distance",
maxDistance: 1000, // 1公里内
spherical: true
}
}
]);
2. 多边形范围内查询
db.places.find({
location: {
$geoWithin: {
$geometry: {
type: "Polygon",
coordinates: [[
### MongoDB GEO 项目场景 ms-scope 实战
MongoDB 的地理空间(GEO)功能在位置服务、地图应用和空间数据分析中具有广泛应用。结合 `ms-scope`(微服务范围)的实战场景,可以实现高并发、低延迟的地理查询服务。以下从索引设计、查询优化和微服务集成三方面展开。
---
### 地理空间索引设计
MongoDB 支持两种地理空间索引:`2dsphere` 和 `2d`。`2dsphere` 适用于球面几何计算,支持 GeoJSON 格式数据;`2d` 适用于平面坐标计算,适合小范围场景。
```javascript
// 创建 2dsphere 索引
db.places.createIndex({ location: "2dsphere" });
// 插入 GeoJSON 数据示例
db.places.insertOne({
name: "Central Park",
location: {
type: "Point",
coordinates: [-73.968285, 40.785091]
}
});
对于 ms-scope 微服务场景,建议使用 2dsphere 索引,因其支持复杂查询(如多边形范围、距离计算)且兼容 WGS84 坐标系。
地理空间查询实战
MongoDB 提供 $geoNear、$geoWithin 和 $near 等操作符,以下为常见查询示例:
1. 附近地点查询
db.places.aggregate([
{
$geoNear: {
near: { type: "Point", coordinates: [-73.9667, 40.78] },
distanceField: "distance",
maxDistance: 1000, // 1公里内
spherical: true
}
}
]);
2. 多边形范围内查询
db.places.find({
location: {
$geoWithin: {
$geometry: {
type: "Polygon",
coordinates: [[
MongoDB GEO实战:微服务地理查询优化
755

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



