MongoDB地理空间检索

本文介绍了MongoDB中的地理空间检索功能,重点讲解了$near和$nearSphere操作,以及如何为地理空间字段建立2d和2dsphere索引。这两个操作用于查找距离指定点最近的文档,但不直接返回距离。要获取距离,需要使用$geoNear聚合操作。文中还提到了坐标格式、距离单位以及如何结合普通索引进行查询。
摘要由CSDN通过智能技术生成

在Mongodb种,想要运用它的地理空间检索,必须给相应字段建立索引,主要有2d、2dsphere这两种索引,

建立的语法分别为:

db.集合名.createIndex({"字段1": "2d"})
db.集合名.createIndex({"字段2": "2dsphere"})

$near、$nearSphere是Mongodb中用来获取某一基准点的邻近点、并且由近至远排好序的操作。他们都支持对2d索引和2dsphere索引的操作,但有如下需要注意的点:

 

●$near检索时,若标识坐标的字段为2d索引,它传入的基准点的格式必须是Double数组型的;若标识坐标的字段为2dsphere索引,传入的基准点的格式则必须为GeoJSON型。

 

●对于$nearSphere,若作用在2d索引上,则要求该2d索引必须是建立在集合中GeoJSON型数据的coordinates字段上,且传入的基准点的格式必须是Double数组型的;若作用在2dsphere索引上,则对基准点的格式无要求。

 

●传入的基准点格式为Double数组时,$minDistance、$maxDistance的计算都是以弧度为单位的;

传入的基准点格式为GeoJSON时,计算是以距离:米为单位的。

$near、$nearSphere虽然能够检索出邻近点,并且由近至远排好序,但是这两个操作是不返回距离的。

返回距离需要用到聚合检索中的$geoNear,其使用方法为:

db.集合名.aggregate([{
    $ge
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值