2016-02-28 43 views
0
  1. 在數據庫(mongodb)中存儲的對象有latitude and longitude
  2. 例如我在服務器(tomcat)上指向latitude and longitude

我想讓query根據它們的latitude and longitude將返回按距離從這個點(從最近到最遠)排序的所有對象。在數據庫查詢中按緯度和經度排序位置

有人可以幫助我,如何做出這樣的查詢?只有當我只有latitude and longitude時,我不知道規則如何按距離排序。在DB

對象結構:{"id","name","latitude","longitude"}

回答

0

從蒙戈DB幫助頁面 - 您可以使用$附近 所有結果都需要從點

MongoDB near help 排序從最近一到farest一個.. 。

語法:

{ 
    $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 
      } 
     } 
    } 
) 
+0

好,三江源,只是不知道如何使用它,當我有經度和緯度兩個不同的領域。任何幫助? – Edgar

+0

所以在我看來,你應該改變數據結構以具有GeoJSON類型,因爲這是用於排隊距離的本地格式。查看更多關於mongo點結構的搜索 - 如果您需要幫助,只需發一條留言:-) – profesor79