【问题标题】:Sort locations by latitude and longitude in database query在数据库查询中按经纬度对位置进行排序
【发布时间】:2016-06-11 19:59:42
【问题描述】:
  1. 在数据库 (mongodb) 中存储有 latitude and longitude 的对象。
  2. 例如,我在服务器 (tomcat) 上有 latitude and longitude 的点。

我想创建query,它将返回所有按与该点的距离(从最近到最远)排序的对象,根据他们的latitude and longitude

有人可以帮助我,如何进行这样的查询?只是当我只有latitude and longitude 时,我不知道如何按距离排序。

db中的对象结构:{"id","name","latitude","longitude"}

【问题讨论】:

    标签: java mongodb latitude-longitude


    【解决方案1】:

    来自 mongo DB 帮助页面 - 您可以使用 $near 所有结果都从所需点从最近的一个到最远的一个排序

    MongoDB near help ...

    语法:

    {
      $near: {
         $geometry: {
            type: "Point" ,
            coordinates: [ <longitude> , <latitude> ]
         },
         $maxDistance: <distance in meters>,
         $minDistance: <distance in meters>
      }
    }
    

    和有用的例子

    db.places.find(
       {
         location:
           { $near :
              {
                $geometry: { type: "Point",  coordinates: [ -73.9667, 40.78 ] },
                $minDistance: 1000,
                $maxDistance: 5000
              }
           }
       }
    )
    

    【讨论】:

    • 好的,谢谢,当我有两个单独的纬度和经度字段时,我不确定如何使用它。有什么帮助吗?
    • 所以在我看来,您应该将数据结构更改为具有 GeoJSON 类型,因为这是用于查询距离的原生格式。查看更多搜索 mongo 点结构的信息 - 如果您需要帮助,请大声喊叫 :-)
    猜你喜欢
    • 2013-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-22
    • 2018-11-13
    • 2015-01-06
    • 2014-01-22
    • 2019-09-23
    相关资源
    最近更新 更多