[英]Data model for geo spatial data and multiple queries
我有一些mongodb對象,我們稱其為包含地理信息的place
,請看示例:
{
"_id": "234235425e3g33424".
"geo": {
"lon": 12.23456,
"lat": 34.23322
}
"some_field": "value"
}
在每個place
,功能列表都與以下內容相關聯:
{
"_id": "2334sgfgsr435d",
"place_id": "234235425e3g33424",
"feature_field" : "some_value"
}
如您所見,由於place_id
字段, place_id
已鏈接到地點。 現在,我想查找:與最近的places
有關的features
列表。 但我也想在place.some_field
和feature.feature_field
上添加搜索條件。 我想限制結果的重要之處。
現在我正在使用這種方法:
places
geo
和some_filed
features
與條件feature_field
和place_id
(只限制在1中發現的) 我的問題是:是否有更好的方法來執行此任務? 現在,我無法使用mongo limit()
函數,因為在places
執行此操作時,由於需要進行第二次查詢,結果可能太少。 我不能對第二個查詢進行limit()
,因為結果將以隨機順序出現,我想按距離對它進行排序。
我知道我可以將數據放入一個文檔中,但是我認為features
列表將很長,並且可以超過BSON大小限制。
僅用完16mb的功能似乎不太可能...但是有可能。 我認為您沒有意識到16mb的大小,因此在做任何事情之前先進行數學運算!
無論如何,對於MongoDB,您無法使用兩個集合中的字段進行查詢。 查詢始終只處理一個特定的集合。 我所做的事情與您在此處所做的事情非常相似,我已經在一篇文章中進行了介紹: http : //derickrethans.nl/indexing-free-tags.html-對此有所啟發。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.