MongoDB 2dsphere索引错误

时间:2013-06-12 22:02:04

标签: mongodb geojson

为表'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 ] ] ] } 

问题是,我正在从SQL Server复制,其中相同的坐标通过STIsValid

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

Mongo版本2.4.4

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

geojson对mongodb无效 - 它只接受x,y而不是z坐标(海拔高度)。这是因为它只具有2D索引/查询功能。

您需要从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

答案 1 :(得分:0)

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