MongoDB для трендовых данных - PullRequest
0 голосов
/ 28 марта 2011

У меня есть приложение, в котором клиенты могут частично определить свою схему, добавив настраиваемое поле к различным имеющимся у нас объектам домена. Мы рассматриваем данные о тенденциях для этих пользовательских полей. Я думал о хранении данных в формате, в котором есть изменения, перечисленные в объекте.

{
  _id: "id",
  custom1: 2,
  changes: {
             '2011-3-25': { custom1: 1 }
           }
}

Это, очевидно, должно быть меньше, чем максимальный размер документа (16 МБ), который, я думаю, вполне соответствует количеству изменений, которые у нас были бы.

Другая альтернатива будет иметь несколько записей для каждого изменения объекта:

{
  _id: "id",
  custom1: 1,
  changeTime: '2011-3-25' 
}

Это не имеет ограничения документа, но было бы больше записей, требующих больше работы, чтобы получить полный набор изменений для записи.

Что бы вы выбрали?

1 Ответ

1 голос
/ 28 марта 2011

Думаю, я бы хотел пойти по маршруту с одним документом, если он останется в пределах 16 МБ.Таким образом, это всего лишь одно чтение для загрузки записи и всех ее изменений, которые должны быть чертовски быстрыми.Перечисленные в документе изменения выглядят как естественный способ моделирования данных.

В подобных ситуациях, особенно если это не то, что я делал раньше, я бы попытался установить эталонный тест для тестирования.подходы - таким образом, плюсы / минусы / эффективность каждого подхода представляются вам и (мы надеемся) дают вам уверенность в подходе, который вы выберете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...