2016-11-25 62 views
0

我有一個數據庫集合,它遵循地理點位置的geoJSON格式。這使我可以使用d3.js輕鬆地從數據庫提取數據進行顯示。如果地理參考點包含自己的數據集,那麼存儲此信息的最佳方式是什麼,以便它符合geoJSON格式並允許MongoDB 2.4.x 2dsphere查詢?如何在MongoDB 2.4.x中存儲其他數據,使其符合geoJSON格式

下面是從以GeoJSON documentation

{ 
    "type": "Feature", 
    "geometry": { 
    "type": "Point", 
    "coordinates": [123456, 234567] 
    }, 
    "properties": { 
    "arrivalTime": 12345678, 
    "departureTime": 23456789 
    } 
} 

給出的例子讓我們假設在這個特別的時候,我有更多的信息,其中每個矩陣項由值對x,y,z給一個矩陣。例如,如果xy是1x10個載體,則z是10x10矩陣。我需要爲這一點存儲這種類型的信息,但我不想失去在MongoDB 2.4.x中使用2dsphere查詢的能力,我希望我的數據庫集合符合geoJSON,以便其他庫如d3.js能夠無損地互動。

回答

0

您可能可以將GeoJSON對象放入文檔中的字段中。例如,如果某個位置有一個像你的例子一個GeoJSON的對象,你可以嵌入封裝關於這個地點的所有信息的文件,例如,這裏面的文件:

{ 
    "_id": ObjectId(...), 
    "geo": <GeoJSON object>, 
    "meta": { 
    "x": [1x10 vector], 
    "y": [1x10 vector], 
    "z": [10x10 matrix], 
    "other": <other relevant meta information> 
    } 
} 

你還是可以在指數中的MongoDB的地理位置指定子文檔:

> db.geo.createIndex({'geo.geometry': '2dsphere'}) 

請注意,2.4不支持了,並且有在2.6至2dsphere指數主要改進及以上,其中包括索引的能力更加GeoJSON的類型(見https://docs.mongodb.com/v3.2/core/2dsphere/#dsphere-version-2)。最新的MongoDB版本目前是3.4.0。

+0

感謝您的意見。至於版本,我在Raspbian Jessie中使用MongoDB,通過'apt-get'獲得的唯一版本是版本2.4.x.據我所知,最新版本的MongoDB並未在ARM上得到正式支持。一旦我轉向生產環境,我顯然會升級。我只是想確保在原型設計的早期我沒有在自己的腳下開槍自殺。 – ThatsRightJack

相關問題