У меня есть статистические данные в коллекции Mongodb, сохраненные для каждой записи в день.
Например, моя коллекция выглядит примерно так:
{ record_id: 12345, date: Date(2011,12,13), stat_value_1:12345, stat_value_2:98765 }
Каждая запись / идентификатор / дата уникальны. Я запрашиваю коллекцию, чтобы получить статистику по каждой записи для заданного диапазона дат, используя map-Reduce.
Что касается производительности запросов на чтение, то эта стратегия лучше, чем хранение одного документа на запись_ид, содержащего массив статистических данных, как указано выше:
{ _id: record_id, stats: [
{ date: Date(2011,12,11), stat_value_1:39884, stat_value_2:98765 },
{ date: Date(2011,12,12), stat_value_1:38555, stat_value_2:4665 },
{ date: Date(2011,12,13), stat_value_1:12345, stat_value_2:265 },
]}
Что касается профессионалов, мне понадобится один запрос, чтобы получить всю статистику истории записи, не прибегая к более медленному методу уменьшения карты, а с другой стороны, мне придется суммировать статистику для заданного диапазона дат. в моем коде приложения, и если размер записи превышает текущий размер заполнения, есть некоторое перераспределение диска, которое будет продолжаться.