Java 在数据库查询中按纬度和经度排序位置 数据库(mongodb)中存储的对象具有纬度和经度 例如,我在服务器(tomcat)上有一个纬度和经度为的点

Java 在数据库查询中按纬度和经度排序位置 数据库(mongodb)中存储的对象具有纬度和经度 例如,我在服务器(tomcat)上有一个纬度和经度为的点,java,mongodb,latitude-longitude,Java,Mongodb,Latitude Longitude,我想进行查询,它将返回所有对象,这些对象根据其纬度和经度,按距离该点(从最近到最远)排序 有人能帮我吗,如何提出这样的疑问?只是当我只有纬度和经度时,我不知道如何按距离排序 db中的对象结构:{“id”、“名称”、“纬度”、“经度”}来自mongo db帮助页-您可以使用$near 所有结果从最近的一个排序到所需点的最远的一个 语法: { $near: { $geometry: { type: "Point" , coordinates: [ &

我想进行
查询
,它将返回所有对象,这些对象根据其
纬度和经度
,按距离该点(从最近到最远)排序

有人能帮我吗,如何提出这样的疑问?只是当我只有
纬度和经度时,我不知道如何按距离排序


db中的对象结构:
{“id”、“名称”、“纬度”、“经度”}

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

语法:

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

好的,谢谢,只是不知道当我有两个不同的纬度和经度字段时如何使用它。有什么帮助吗?所以我认为您应该更改数据结构,使其具有GeoJSON类型,因为这是用于奇怪距离的本机格式。查看更多搜索mongo point结构的信息-如果需要帮助,请大声呼喊:-)
db.places.find(
   {
     location:
       { $near :
          {
            $geometry: { type: "Point",  coordinates: [ -73.9667, 40.78 ] },
            $minDistance: 1000,
            $maxDistance: 5000
          }
       }
   }
)