fjb_mxcz 2018-03-22 07:22 采纳率: 0%
浏览 875
已结题

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

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

  • 写回答

1条回答 默认 最新

  • fjb_mxcz 2018-04-19 01:48
    关注

    针对查找指定范围内车辆信息的功能,一般的图形无非就是多边形,矩形,圆形,而我们可以认为矩形是一种特殊的多边形。
    直接使用的方法就是 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

    评论

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料