Схема значения ключа для хранения данных GeoSpatial? - PullRequest
0 голосов
/ 26 февраля 2011

Разработка моста для использования CMS с MongoDB Я использую ключ хранения, значение, тип для управления всеми значениями, связанными с CMS.Эти ключевые типы значений хранятся в web.config, чтобы разрешить расширяемую схему.В этом случае не допускается определение объекта класса для сохранения динамической схемы.Результатом является хранилище в виде DynamicArray.Это генерирует несколько ударов о выполнении и хранении широты и долготы для извлечения с использованием операторов Query.Near.

DynamicArray
{  
    item : { Key: "lat", Value: "12.897", Type:double }
    item : { Key: "lng", Value: "12.345", Type:double }  
    item : { Key: "country", Value: "USA", Type:String }  
    item : { Key: "state", Value: "CA", Type:String }  
    item : { Key: "city", Value: "San Jose", Type:String }  
    item : { Key: "district", Value: "", Type:String }   
}

Query.ElemMatch("DynamicArray", Query.And(Query.EQ("Key", "country"), Query.EQ("Value", "USA")));

Query.Near ??

Это значение ключа схемы, совместимое с поиском в GeoSpatial?А исполнитель?Как запросить с использованием официального драйвера Query.Near (официальный драйвер C #) по этой схеме?

Спасибо.

1 Ответ

2 голосов
/ 26 февраля 2011

Чтобы использовать геопространственные запросы в MongoDB, вам необходимо сохранить координаты x, y в качестве первых двух значений в объекте.Примеры допустимых схем:

{ loc: [20,30] } 
{ loc: { x: 20, y: 30 }}
{ loc: { foo: 20, y: 30}}
{ loc: { lat : 40.739037, long: 73.992964 } }

Вы не можете разделить координаты на несколько объектов, как вы это делали в примере выше.

Для получения дополнительной информации: http://www.mongodb.org/display/DOCS/Geospatial+Indexing

...