如何在mongodb的圆形区域中存在该点(用户位置)

时间:2015-08-10 11:12:28

标签: mongodb

  1. 我有圆圈区域列表(非多边形!重要)
  2. 我想知道用户是否存在基于其位置的圈区(区域)。 (在MongoDB中)。
  3. 请你为我提供一个很好的解决方案。

1 个答案:

答案 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);
  });