我正在尝试在一个坐标数组的字段上使用地理空间 2dsphere。
我的城市有区域,每个城市都有自己的区域。当我尝试做一个交叉路口时,我只用特定城市的区域测试 myArea 。因此,我不想将所有城市的所有区域放在同一个集合中。
因此我的问题是,你如何设置它?
我的服务器是 nodejs,如果有帮助,我使用本机 mongodb lib。
我正在尝试在一个坐标数组的字段上使用地理空间 2dsphere。
我的城市有区域,每个城市都有自己的区域。当我尝试做一个交叉路口时,我只用特定城市的区域测试 myArea 。因此,我不想将所有城市的所有区域放在同一个集合中。
因此我的问题是,你如何设置它?
我的服务器是 nodejs,如果有帮助,我使用本机 mongodb lib。
GeoJSON 确实定义了MultiPoli数据类型,该数据类型已在最近的 MongoDB 版本中实现。如果您不能使用其中一个版本,您可以通过为一个集合中的每个城市创建一个文档,并为与另一个集合中的一个城市相关联的每个多边形创建一个文档,同时存储原始城市的 id 来解决问题。
IE
城市收藏:
{
_id: ObjectId("51f67cfb20ea59dba539d9f8"),
name: 'New York',
...
}
city_polys 集合
{
city_id: ObjectId("51f67cfb20ea59dba539d9f8"),
loc: {
type: Polygon,
coordinates: ...
},
...
}
然后,您可以在 city_poly 的 loc 字段上创建 2dsphere 索引。