MongoDB中地理空间查询运算符相关问题 20C

现在最新的MongoDB版本为3.6,根据官网上的描述图片说明 前三个貌似支持吃2d索引,现在官网建议是使用2dsphere,解决具体的业务,比如我们有一个区域查物的功能,这个区域可能是多边形,矩形或者圆形,那么如果我们的数据库表建立的是2dsphere 虽然也能查,但是其实是不走索引的,必须建立2d索引才行,有没有什么办法是我建立的是2dshpere索引,有相关的办法可以替代。

1个回答

针对查找指定范围内车辆信息的功能,一般的图形无非就是多边形,矩形,圆形,而我们可以认为矩形是一种特殊的多边形。
直接使用的方法就是 geoWithin https://docs.mongodb.com/manual/reference/operator/query/geoWithin/
6.1、geoWithin可以没有地理空间索引,但是也可以同时支持2d和2dsphere索引,geoWithin的超找范围支持到多边形,注意
使用时第一个点必须和最后一个点一样,否则会报错。
针对圆形,官网直接提供了centerSphere https://docs.mongodb.com/manual/reference/operator/query/centerSphere/
centerSphere 可以没有地理空间索引,但是也可以同时支持2d和2dsphere索引
使用centerSphere ,最后一个参数为弧度,计算方式为:
英里/3963.2 公里/6,378.1
https://docs.mongodb.com/manual/tutorial/calculate-distances-using-spherical-geometry-with-2d-geospatial-indexes/index.html

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐