在Meteor中,根据与当前用户的反应距离对用户进行排序

Sort users by distance from current user reactively in Meteor?

本文关键字:用户 距离 排序 Meteor      更新时间:2023-09-26

当我根据各种数据处理出版物的反应式排序时,我已经在流星中遇到了问题。每次,我都从未找到真正的答案来实现我想要实现的目标,最终我放弃了,只是决定"不以这种方式构建我的应用程序",这总是让我非常难过。

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

我将用户的位置存储在Accounts.users集合中的"lat"answers"lon"变量中。我希望当前用户获得一个列表,比如说,与他或她最亲近的10个用户。考虑到从纬度和经度获得距离所需的一系列看似复杂的操作,我该如何做到这一点?

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

我希望对这个问题有任何见解,尽管它可能是理论性的。

看看我的工作示例localgeo和github 上的源代码

你可以找到这样的:

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

位置就是这种类型的MongoDB。记住:在MongoDB Lng-first,Lat-second中,我不知道为什么。我在客户端做,但你可以用同样的方式发布,这取决于半径。