MongoDBにいくつかの興味のあるポイントを保存したいと思います。 プロパティと詳細:私はGeoNearを使用しますので 私のためのPOIは、私は2つの異なるコレクションにpoi
を分離、MongoDbに(大)ジオローカライゼーションポイントを保存する方法の提案
poi =
{
properties :
{
name: 'title',
type: 'feature' // GEOJson
geometry :
{ type: 'Point',
coordinates : [lng, lat]
},
categories : ['red', 'green']
},
details :
{
photo: 'http://...',
description : 'bla bla bla.....'
etc...
}
}
のようなものです。まず、poi_propertiesコレクションのpois付近を調べて表示します。その後一度poiを選んだら、詳細をpoi_detailsコレクションに問い合わせます。 最初の研究では、座標のほかに、カテゴリによっても結果をフィルタリングします。クエリが
db.collection.poi_properties.find({$near: [lng, lat], categories:['red']});
のようになりますので、だから私はがとカテゴリ座標インデックスされています。
しかし、クエリは非常に高速ではありません...コレクションがかなり大きいため(エクスポートすると約200MBです)、私は推測します。この種のデータをどのように保存するかについて、有益なテクニック/バストの練習はありますか?
ありがとうございました
はい私はそれを持っています。それはうまくいく、少し遅い – DeLac
ああ、申し訳ありませんが、あなたは地理空間インデックスを持っていないと思った。だから、あなたがexplainを使ってクエリを実行すると、それは効率的なインデックス使用率を示していますか? https://docs.mongodb.com/manual/reference/method/db.collection.explain/#db.collection.explain – Tiramisu