我認爲有一個更好的解決方案,因爲車輛不能經常更改他們的城市/國家,直到他們飛行。我正在考慮以下內國家schema-
Country={
id: ObjectId or String,
name: String,
cities: [<array of city subdocuments>],
near_country: [<array of IDs of neighbour countries>],
boundary: location boundary for city <city would be polygon or your choice of geoType>
}
市子文檔可以有模式像{id, name, boundary, near_city}.
我會選擇我的車輛架構爲{id, location_cordinates, curr_city, curr_country}
現在,當你得到車輛位置數據,剛剛從存儲車輛文檔獲取curr_city和檢查位置是否仍在curr_city中。如果這沒有問題,否則你只需要檢查該位置是否在near_city內。
如果城市/國家由於車輛移動而改變,那麼您需要使用最新數據更新車輛。
以這種方式,您將盡量減少對數據庫的查詢。這將需要一些代碼,因爲一切都不會在數據庫中完成。
喜歡 - 車輛
- 位置在這裏,我已經採取了一些假設將被存儲的車輛文件內。如果不是你的情況,那就把它刪除。您可能會從GPS或類似的東西獲取位置,並且不需要根據您的需要進行存儲。
- 我無法理解相交部分。它是過渡還是交叉?通常國家有州,州有城市等。城市名稱可以在州內或州內複製。但是一個城市將成爲唯一一個國家的一部分。如果情況並非如此,那麼你只需要在多個國家放置同一個城市,並將代碼邏輯放在這些城市中。
- 在靠近城市的同時,您需要考慮位於國家邊界的城市,並且可能會從另一個國家/地區到達城市附近。
希望我明白你的問題和解決方案對你有幫助。如果獲得更多信息,我會很樂意提供幫助。