У меня есть приложение, в котором клиенты могут частично определить свою схему, добавив настраиваемое поле к различным имеющимся у нас объектам домена. Мы рассматриваем данные о тенденциях для этих пользовательских полей. Я думал о хранении данных в формате, в котором есть изменения, перечисленные в объекте.
{
_id: "id",
custom1: 2,
changes: {
'2011-3-25': { custom1: 1 }
}
}
Это, очевидно, должно быть меньше, чем максимальный размер документа (16 МБ), который, я думаю, вполне соответствует количеству изменений, которые у нас были бы.
Другая альтернатива будет иметь несколько записей для каждого изменения объекта:
{
_id: "id",
custom1: 1,
changeTime: '2011-3-25'
}
Это не имеет ограничения документа, но было бы больше записей, требующих больше работы, чтобы получить полный набор изменений для записи.
Что бы вы выбрали?