1、建立坐标2d索引
>db.dt.ensureIndex({"coordinates":"2d"})
结果:
{
"numIndexesBefore" : 2,
"numIndexesAfter" : 2,
"note" : "all indexes already exist",
"ok" : 1
}
2、使用geoNear函数进行坐标距离计算
- 聚合(aggregate)是基于数据处理的聚合管道,每个文档通过一个由多个阶段(stage)组成的管道,可以对每个阶段的管道进行分组、过滤等功能,然后经过一系列的处理,输出相应的结果。
- near:表示中心点坐标。
- maxDistance:表示求多大范围内的数据。
- distanceField:指定坐标距离的别名。
>db.dt.aggregate({
"$geoNear": {
"near": [30, 100],
"maxDistance": 1000,
"distanceField": "distance"
}
})