2016-11-25 17 views
0

У меня есть коллекция базы данных, которая следует за форматированием geoJSON для географических местоположений точек. Это позволяет мне легко извлекать данные из базы данных для отображения, используя d3.js. Если точка, привязанная к георесурсам, содержит собственный набор данных, то какой способ хранить эту информацию таким образом, чтобы она соответствовала форматированию geoJSON и разрешала запросы MongoDB 2.4.x 2dsphere?Как хранить дополнительные данные в MongoDB 2.4.x так, чтобы он соответствовал форматированию geoJSON

Вот пример, приведенный из GeoJSON documentation

{ 
    "type": "Feature", 
    "geometry": { 
    "type": "Point", 
    "coordinates": [123456, 234567] 
    }, 
    "properties": { 
    "arrivalTime": 12345678, 
    "departureTime": 23456789 
    } 
} 

Давайте предположим, что в данный конкретный момент у меня есть матрица дополнительной информации, где каждый элемент матрицы дают парами значений x,y,z. Например, если x и y являются векторами 1x10, z является матрицей 10 × 10. Мне нужно сохранить этот тип информации для этого момента, но я не хочу потерять возможность использовать 2dsphere запросов в MongoDB 2.4.x, и я хочу, чтобы моя коллекция базы данных соответствовала geoJSON, чтобы другие библиотеки, такие как d3.js могут взаимодействовать без потерь.

ответ

0

Возможно, вы можете разместить объект GeoJSON внутри поля в документе. Например, если место есть объект GeoJSON, как ваш пример, вы можете вставлять этот документ внутри документа, который инкапсулирует всю информацию об этом месте, например:

{ 
    "_id": ObjectId(...), 
    "geo": <GeoJSON object>, 
    "meta": { 
    "x": [1x10 vector], 
    "y": [1x10 vector], 
    "z": [10x10 matrix], 
    "other": <other relevant meta information> 
    } 
} 

Вы можете по-прежнему индекс местоположение гео в MongoDB, указав поддокумент:

> db.geo.createIndex({'geo.geometry': '2dsphere'}) 

Пожалуйста, обратите внимание, что 2.4 больше не поддерживается, и существует значительные улучшения индекса 2dsphere в 2.6 и выше, который включает в себя возможность индексировать более GeoJSON типов (см https://docs.mongodb.com/v3.2/core/2dsphere/#dsphere-version-2). Последняя версия MongoDB в настоящее время составляет 3.4.0.

+0

Спасибо за ввод. Что касается версии, я использую MongoDB в Raspbian Jessie, и единственная версия, доступная через 'apt-get', - это версия 2.4.x. Насколько мне известно, последняя версия MongoDB официально не поддерживается на ARM. Как только я перейду в производственную среду, я, очевидно, обножу. Я просто хотел быть уверенным, что я не стрелял в ногу в начале прототипирования. – ThatsRightJack

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

  • Нет связанных вопросов^_^