找到10个最近的点

时间:2016-11-28 22:56:57

标签: javascript mongodb mongoose geospatial geojson

我想知道如何搜索距我所在地点最近的10个点。目前我有这样的事情:

  const query50 = Event.where('location').near({
        center: {
            type: 'Point',
            coordinates: [data.lng, data.lat]
        },
        maxDistance: 50000,
        spherical: true
    });

但是这允许我显示半径50公里内的所有事件。现在我想收到最接近我的10但没有设置 maxDistance 。是否有一些高效的方式来做到这一点?

2 个答案:

答案 0 :(得分:0)

简短的回答是否定的。但是你可以根据到你所在位置的距离对你的结果进行排序,它的速度相当快。

答案 1 :(得分:0)

使用.limit(n)方法限制

db.places
  .find({
     location:
       { 
          $near: {
              $geometry: { type: "Point", coordinates: [-73.9667, 40.78] }
          }
       }
   })
    .limit(10)
    .exec(function(err, result) { /*...*/ });

$maxDistance$minDistance是可选的

Example of using $near operator