С введением 2.3 >
MongoDB стал еще более полезным при обработке данных и обработке запросов. MongoDB хранит документы как BSON, поэтому каждый документ имеет все поля документа, что, очевидно, потенциально приводит к большим базам данных, чем наши обычные RMDBS.GeoJSON и MongoDB: Стоит ли хранить точки в виде GeoJSON.Point?
Я использовал для хранения полилиний и полигонов в виде ряда индексированных точек с дополнительным полем, представляющим порядок каждой строки (я делал это, чтобы обеспечить согласованность при использовании JavaScript, поэтому точки не всегда сохранялись в их правильный заказ). Это было что-то вроде этого:
polyline: {
[
point: [0,0],
order: 0
],
[
point: [0,1],
order: 1
]
}
А сейчас я использую:
polyline: {
type: 'LineString',
coordinates: [
[0,0],
[1,0]
]
}
Я видел улучшение в размере документов, так как некоторые ломаные может иметь до 500 пунктов.
Тем не менее, мне интересно, какие преимущества хранения всех моих Point
данных будут GeoJSON
. Я обескуражен увеличением размера документа, как, например:
loc: [1,0]
это лучше, чем
loc: {
type: 'Point',
coordinates: [0,1]
}
и, таким образом, будет легче работать.
Мой вопрос:
Является ли это лучше/рекомендуется хранить в качестве точек GeoJSON
объектов, в отличие от массива в 2 очка?
Что я рассмотрел это следующие:
- Размер ограничения: Я мог бы потенциально иметь миллионы документов с места, что может повлиять на размер сбора и потенциально мой карман.
- Последовательность: было бы лучше иметь дело с каждым набором координат в формате
lng, lat
, в отличие от прикрепления кlat, lng
для очков, а также для всех моих других функций местоположения. - Удобство: Если я возьму точку и воспользуюсь с ней
$geoWithin
или$geoIntersects
, мне не нужно было бы преобразовывать ее в GeoJSON прежде, чем использовать ее в качестве параметраquery
.
Что я неуверен является:
- ли поддержка
loc: [x,y]
будет отброшен в будущем на MongoDB - Любые индексирование выгоды от
2dsphere
в отличие от2d
- ли какой-либо плановой
GeoJSON
дополнения к MongoDB могут привести к необходимости согласованности, упомянутой выше.
Я предпочел бы переехать в GeoJSON
, пока мои данные по-прежнему управляемы, чем в будущем в будущем под большим напряжением.
Прошу вас просить полностью (хотя бы слегка) продуманный ответ. Я скоро не выберу правильный ответ, поэтому я могу оценить любые ответы.
Я также не уверен, что SO является правильным местом для постановки вопроса, поэтому, если DBA является более подходящим местом, я переведу туда вопрос. Я выбрал SO, потому что здесь много активности, связанной с MongoDB,.
Я принимаю ваш ответ. Ваш второй пункт - тот, который меня убеждает. Я читал об этом, но забыл, что теперь могу использовать составные индексы на 2dsphere –