На http://www.rethinkdb.com/docs/data-modeling/ , состояния:
Из-за предыдущего ограничения размер массива сообщений не должен превышать несколько сотен документов.
Если я намереваюсь вести статистику за 90 дней (3 месяца), вероятно, каждая дата имеет встроенный массив из примерно 10 регионов. Это означает, что 90*10=900. 900 — это не совсем несколько сотен.
Однако связанный с этим вопрос в разделе отношения MongoDB: встраивание или ссылка? предполагает, что MongoDB имеет ограничение из 16 МБ, что означает возможность размещения 30 миллионов твитов или примерно 250 000 типичных вопросов Stackoverflow в виде встроенных документов. Это много!
Однако это MongoDB. RethinkDB имеет ограничение в 10 МБ на документ. Который все еще должен быть значительно высоким. Либо документация RethinkDB может быть ошибочной. Или есть еще одна конкретная причина (не объясненная), почему Rethinkdb предлагает ограничиться несколькими сотнями встроенных массивов, хотя 10 МБ явно могут содержать гораздо больше.
Примерное представление о схеме, о которой я говорил:
DailyStat::Campaign
[
{
id: '32141241dkfjhjksdlf',
days_remaining: 26,
status: 'running',
dates: [
{
date: 20130926,
delivered: 1,
failed: 1,
clicked: 1,
top_regions: [
{ region_name: 'Asia', views: 10 },
{ region_name: 'America', views: 10 },
{ region_name: 'Europe', views: 10 },
{ region_name: 'Africa', views: 10 },
{ region_name: 'South East Asia', views: 10 },
{ region_name: 'South America', views: 10 },
{ region_name: 'Northern Europe', views: 10 },
{ region_name: 'Middle East', views: 10 }
]
},
{
date: 20130927,
delivered: 1,
failed: 1,
clicked: 1,
top_regions: [
{ region_name: 'Asia', views: 10 },
{ region_name: 'America', views: 10 },
{ region_name: 'Europe', views: 10 },
{ region_name: 'Africa', views: 10 },
{ region_name: 'South East Asia', views: 10 },
{ region_name: 'South America', views: 10 },
{ region_name: 'Northern Europe', views: 10 },
{ region_name: 'Middle East', views: 10 }
]
},
...
]
}
]