按照当前用户与Meteor的反应距离对用户进行排序?

时间:2014-10-13 20:37:05

标签: javascript mongodb meteor geolocation distance

在根据各种数据处理出版物的反应性排序时,我在流星中面对already been issues。每一次,我都没有真正回答我想要实现的目标,我最终放弃了,只是决定不以这种方式构建我的应用程序",这总是让我非常难过。

现在也许我可以简单地说出这个问题,它可以得到一个建设性的,非常有趣的答案。我认为这听起来像是应该可以在Meteor应用程序中完成,所以这里是:

我将用户的位置存储在" lat"和" lon"我的Accounts.users集合中的变量。我希望当前用户获得一个列表,例如,与他或她最近的10个用户。考虑到从纬度和经度获得距离所需的seemingly complicated操作集,我该怎么做呢?

据我所知,在MongoDB查询条件中插入这样的等式几乎是不可能的。那么其他人如何实现这一壮举呢?

我很欣赏对这个问题的任何见解,尽管它可能是理论上的。

1 个答案:

答案 0 :(得分:1)

查看我的工作示例localgeo以及github

上的来源

你可以这样找到:

   var nearMarkers = allMarkers.find({
      location: {
        $near: {
          $geometry: {
            type: "Point",
            coordinates: location
          },
          $maxDistance: radius
        }
      }
    });

位置是MongoDB的type。请记住:在MongoDB Lng中 - 首先是Lat - second,我不知道为什么。我是在客户端做的,但你可以用相同的方式进行发布,取决于半径。