如何在mongodb的圆形区域中获得该点(用户位置) 我有圆形区域列表(不是多边形!重要) 我想知道用户基于他的位置存在于哪个圆圈区域(区域)。(在MongoDB中)
请您为我提供一个很好的解决方案。使用如何在mongodb的圆形区域中获得该点(用户位置) 我有圆形区域列表(不是多边形!重要) 我想知道用户基于他的位置存在于哪个圆圈区域(区域)。(在MongoDB中),mongodb,Mongodb,请您为我提供一个很好的解决方案。使用$geointen函数并以编程方式构造将提供给find()函数的圆列表 circles = []; // lat,lon radius circles[0] = [ [0,0] , 2 ]; circles[1] = [ [4,0] , 4 ]; circles[2] = [ [8,8] , 2 ]; locs = []; for(n = 0; n < 2; n++) { var pt = circles[n][0];
$geointen
函数并以编程方式构造将提供给find()
函数的圆列表
circles = [];
// lat,lon radius
circles[0] = [ [0,0] , 2 ];
circles[1] = [ [4,0] , 4 ];
circles[2] = [ [8,8] , 2 ];
locs = [];
for(n = 0; n < 2; n++) {
var pt = circles[n][0];
var radius = circles[n][1];
locs.push({"location": { $geoWithin :
{ $center : [ pt, radius ]
} }});
}
var q = {"$or": locs};
var c = db.geo.find(q);
c.forEach(function(r) {
printjson(r);
});
circles=[];
//lat,lon半径
圆圈[0]=[0,0],2];
圆圈[1]=[4,0],4];
圆圈[2]=[8,8],2];
locs=[];
对于(n=0;n<2;n++){
var pt=圆[n][0];
var半径=圆[n][1];
locs.push({“位置”:{$GEOIN:
{$center:[pt,半径]
} }});
}
var q={“$or”:locs};
var c=db.geo.find(q);
c、 forEach(函数(r){
printjson(r);
});
谢谢@Buzz的回复。谢谢@Buzz的回复。但位置(geo)未存储在集合中。和当前用户位置一样,当前用户位置为28.567、77.7678,圆圈存储在集合中。现在我想得到一个圆,它包含那个长的和长的。你的回答与我的问题相反。还有别的办法吗?抱歉,但我没有清楚地理解这个问题。您知道用户在哪里,例如,其中一个用户的电话号码为[28.567,77.7678]。该信息存储在某个集合A中。集合B包含圆定义。因此,从集合B中拉出圆定义,然后转过身并将查询应用于集合A。是否接近?是@嗡嗡声谢谢