美文网首页
mongodb 地理位置查询实例

mongodb 地理位置查询实例

作者: 陈亮2019 | 来源:发表于2020-04-28 17:13 被阅读0次

为了能用mongdodb的地理信息查询功能,插入集合的文档需要按如下格式存入:

"loc":{"type":"Point","coordinates":[经度,维度]}

loc名字可以自定义,值的格式必须按mongodb固定格式。 

将如下3个文档插入集合geo_test

{"name":"shanghai","loc":{"type":"Point","coordinates":[121,30]}}

{"name":"suzhou","loc":{"type":"Point","coordinates":[123,33]}}

{"name":"beijin","loc":{"type":"Point","coordinates":[118,40]}}

并且对loc建2dsphere索引

db.geo_test.createIndex("loc":"2dsphere")

查询一个矩形框内的点:

db.geo_test.find({"loc":{"$within":{"$box":[[120,20],[123,32]]}}})

$box的参数第一个是左下角坐标,第二个是右上角坐标

查询一个圆内的点

db.geo_test.find({"loc":{"$within":{"$center":[[121,22],13]}}})

$center的第一个参数是圆点坐标,第二个参数是半径,半径单位为坐标系使用的单位。

查一个多边形内的点

db.geo_test.find({"loc":{"$within":{"$polygon":[[120,20],[120,32],[123,35],[123,18]]}}})

查询距离某点距离在一个范围内文档

db.geo_test.find({"loc":{$near:{$geometry: { type: "Point", coordinates: [ 123, 31 ] },$minDistance: 10000,$maxDistance: 500000}}})

距离单位为米

相关文章

网友评论

      本文标题:mongodb 地理位置查询实例

      本文链接:https://www.haomeiwen.com/subject/dwhbwhtx.html