2013-06-12 2 views
1

Ошибка при создании индекса для таблицы «MSParcels»: WriteConcern обнаружил ошибку «Не удается извлечь ключи гео из объекта, уродливы геометрия ?:MongoDB 2dsphere индекс ошибки

{ 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 Сервер, где одинаковые координаты проходят STIsValid

Использование C# драйвер MongoDB.Driver.Builders.IndexKeys.GeoSpatialSpherical

Монго версия 2.4.4

Любые советы?

ответ

1

Геойсон недействителен для mongodb - он принимает только координаты x, y, а не z (высота). Это связано с тем, что он имеет только возможности 2D-индексирования/запросов.

Вы должны удалить г координаты из GeoJSON документа быть что-то вроде:

{ 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

+0

Спасибо, я сделаю это. –

+0

Нет проблем - можете ли вы отметить ответ, чтобы помочь другим с той же проблемой? – Ross

+0

Эта функция была реализована в MongoDB 3.0.3. –

0

Ваши координаты недействительны. Геогонный многоугольник представляет собой массив массивов массивов с двумя координатами не три (дополнительный 0,0)

+0

Duh, спасибо. Я подумал об этом после того, как оставил работу. –

Смежные вопросы