请你为我提供一个很好的解决方案。
答案 0 :(得分:0)
使用$geoWithin
功能并以编程方式构建将提供给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);
});