我正在研究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查询给我的结果吗?
我尝试了很多方式,最后我得到了一个解决方案
解决方案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 ] ]
}
}
}
希望对你有所帮助