2016-12-02 95 views
0

我正在試驗mongoDB geoNear查詢。我收集了一個內部文檔:對傳統數據的MongoDB geoNear查詢返回不準確的距離

{ 
       "_id": { 
        "$oid": "583d169df18ef10012ae8345" 
       },     
       "location": { 
        "loc": [ 
         103.7652117, 
         1.3150887 
        ], 
        "name": "", 
        "_id": { 
         "$oid": "583d169df18ef10012ae8346" 
        } 
       }, 

} 

location.loc字段是2d索引。然後我用有關MongoDB命令

{ 
     "geoNear": "users", 
     "near": [103.761614, 1.3172431], 
     "num": 10 
    } 

一個geoNear查詢從MongoDB中返回的結果距離是0.004193433515629152弧度對應於超過20公里。然而,這兩個座標相距0.5公里。有什麼我做錯了嗎?我知道這肯定是一件非常愚蠢的事情,但我無法弄清楚。

回答

0

如果你想查詢相關$geoWithin or $centerSphere or $geoNear位置結構這樣才: -

"location" : { 
     "lng" : 77.15319738236303, 
     "lat" : 28.434568229025803 
    }, 

然後運行查詢。它會給你準確的結果。

+0

嗨Ashutosh,你的意思是說文檔結構是錯誤的?我相信mongoDB確實支持嵌套位置對象? – Bin