【问题标题】:MongoDB 2dsphere index errorMongoDB 2dsphere 索引错误
【发布时间】:2013-06-09 04:38:01
【问题描述】:

为表“MSParcels”创建索引时出错:WriteConcern 检测到错误“无法从对象中提取地理键,几何形状错误?:

{ type: "Polygon", coordinates: 
    [ [ [ -122.118466012, 47.6511409501, 0.0 ], 
        [ -122.118687874, 47.6508529655, 0.0 ], 
        [ -122.118817718, 47.650852731, 0.0 ], 
        [ -122.118890754, 47.650852592, 0.0 ], 
        [ -122.118891979, 47.651140118, 0.0 ], 
        [ -122.118703033, 47.6511404878, 0.0 ], 
        [ -122.118466012, 47.6511409501, 0.0 ] ] ] } 

问题是,我从相同坐标通过 STIValid 的 SQL Server 复制

使用 C# 驱动程序 MongoDB.Driver.Builders.IndexKeys.GeoSpatialSpherical

Mongo 版本 2.4.4

有什么建议吗?

【问题讨论】:

    标签: mongodb geojson


    【解决方案1】:

    geojson 对 mongodb 无效——它只接受 x,y 而不是 z 坐标(高度)。这是因为它只有二维索引/查询功能。

    您需要从 geojson 文档中删除 z 坐标,如下所示:

    { type: "Polygon", coordinates: 
        [ [ [ -122.118466012, 47.6511409501], 
            [ -122.118687874, 47.6508529655], 
            [ -122.118817718, 47.650852731], 
            [ -122.118890754, 47.650852592], 
            [ -122.118891979, 47.651140118], 
            [ -122.118703033, 47.6511404878], 
            [ -122.118466012, 47.6511409501] ] ] } 
    

    有一个功能请求来改进这个 - 请投票给:SERVER-9220

    【讨论】:

    • 没有问题 - 您可以标记为已回答以帮助其他人解决同样的问题吗?
    • 该功能在 MongoDB 3.0.3 中实现。
    【解决方案2】:

    您的坐标无效。一个 geojson 多边形是一个数组的数组,有两个坐标而不是三个坐标(额外的 0.0)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-18
      • 1970-01-01
      • 2013-09-16
      • 1970-01-01
      • 1970-01-01
      • 2021-10-25
      • 2014-03-25
      • 1970-01-01
      相关资源
      最近更新 更多