使用2个谷歌地图点(纬度和经度)从mongodb查询中查找方形区域数据

问题描述 投票:-1回答:1

我正在研究mongodb地理空间功能。

以下是我的数据库架构

{
    _id:5c6fea5aa7f54038cc63db92,
    location:{
        coordinates:[-96.81916,33.07516],
        type:"Point"
    },
    userId:1
}

使用2dsphere在位置字段上建立索引

我有2个点,每个都有纬度和经度,其示例如下

sw_latitude:32.76286484066411 sw_longitude:-96.91870791625979

ne_latitude:32.789133220783015 ne_longitude:-96.67529208374026

基于这两点,我需要得到所有userId,这些都是在这两个点上覆盖

你能告诉我mongo查询给我的结果吗?

node.js mongodb mongodb-query geometry geospatial
1个回答
0
投票

我尝试了很多方式,最后我得到了一个解决方案

解决方案1的步骤:

第1步:从该点找到边界

纬度:[32.740776至32.8112099]和经度:[ - 96.910983 TO -96.683016]

第2步:使用Geospatial(ref:$box from mongo)中的$ box并传递此边界点。

{    location: { 
       $geoWithin: { 
           $box:  [ [ 32.740776, 32.8112099 ], [ -96.910983, -96.683016 ] ] 
        }     
      } 
}

解决方案2的步骤:

第1步:按照以下方式正确设置现有点

纬度:[32.76286484066411至32.789133220783015]经度:[ - 96.91870791625979 TO -96.67529208374026]

第2步:使用Geospatial(ref:$box from mongo)中的$ box并传递此边界点。

{    location: { 
       $geoWithin: { 
           $box:  [ [ 32.76286484066411,  32.789133220783015 ], [ -96.91870791625979, -96.67529208374026 ] ] 
        }     
      } 
}

希望对你有所帮助

© www.soinside.com 2019 - 2024. All rights reserved.