我想在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...
}
}由于我将使用GeoNear,所以我将poi划分为两个不同的集合:属性和详细信息。因此,首先,我将研究和显示接近pois在poi_properties的集合。然后,一旦选择了一个poi,我将查询它关于poi_details集合的详细信息。在第一项研究中,除了坐标外,我还对结果进行了分类过滤。所以查询看起来就像
db.collection.poi_properties.find({$near: [lng, lat], categories:['red']});所以我有索引坐标和类别。
但是,查询不是那么快.我猜是因为这个集合相当大(如果我导出它,它大约是200 it )。在如何存储这类数据方面,是否有任何有用的技术/最新实践?
谢谢
发布于 2016-07-28 14:19:38
你有坐标的地理空间索引吗?
https://docs.mongodb.com/manual/applications/geospatial-indexes/
语法如下:
db.collection.createIndex( { <location field> : "2dsphere" } )然后,您可以检索您的信息,并返回您的结果与一个查询。
https://stackoverflow.com/questions/38637274
复制相似问题