【问题标题】:How do I set up a geospatial 2dsphere index on field that is an array?如何在作为数组的字段上设置地理空间 2dsphere 索引?
【发布时间】:2013-05-29 21:53:29
【问题描述】:

我正在尝试在坐标数组的字段上使用地理空间 2dsphere。

我的城市有区域,每个城市都有自己的区域阵列。当我尝试做一个交叉路口时,我只用特定城市的区域测试 myArea 。因此,我不想将所有城市的所有区域放在同一个集合中。

所以我的问题是,你如何设置它?

我的服务器是 nodejs,如果有帮助,我会使用本机 mongodb 库。

【问题讨论】:

    标签: mongodb geospatial


    【解决方案1】:

    GeoJSON 确实定义了 MultiPoli 数据类型,它已在 recent releases of MongoDB 中实现。如果您无法使用其中一个版本,您可以通过为一个集合中的每个城市创建一个文档,并为与另一个集合中的一个城市相关联的每个多边形创建一个文档,同时存储原始城市的 id 来解决问题。

    城市收藏:

    {
        _id: ObjectId("51f67cfb20ea59dba539d9f8"),
        name: 'New York',
        ...
    }
    

    city_polys 集合

    {
        city_id: ObjectId("51f67cfb20ea59dba539d9f8"),
        loc: {
                type: Polygon,
                coordinates: ...
        },
        ...
    }
    

    然后您可以在 city_poly 的 loc 字段上创建一个 2dsphere 索引。

    【讨论】:

    • 虽然我通过在 nodejs(服务器)中进行交集来解决问题,但您的回答是可以接受的。干杯。
    • 对 MultiPoli (SERVER-8907) 的支持目前只添加到 MongoDB 的 2.5 开发/不稳定版本中,因此计划在今年晚些时候推出 2.6 生产版本。class="comcopy">跨度>
    猜你喜欢
    • 1970-01-01
    • 2017-12-01
    • 2014-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-30
    相关资源
    最近更新 更多