Общая рекомендация - хранить данные, которые ваше приложение должно отображать. Поэтому, если вы хотите отображать лучшие предложения на сегодня, на эту неделю и на этот месяц, это означает сохранение именно этих агрегатов: самых популярных предложений по дням, неделям и месяцам.
Простая модель для их хранения - сохранить текущий, но затем для каждого уровня агрегации и каждого интервала:
stats
--topPhrases
--keyA
--phrase: "who are you"
--count: 2
--key
--phrase: "hello"
--count: 1
--topPhrases_byDay
--20190607
--keyA
--phrase: "who are you"
--count: 2
--key
--phrase: "hello"
--count: 1
--20190607
--keyA
--phrase: "who are you"
--count: 2
--key
--phrase: "hello"
--count: 1
--topPhrases_byWeek
--201922
--keyA
--phrase: "who are you"
--count: 2
--key
--phrase: "hello"
--count: 1
--201923
--keyA
--phrase: "who are you"
--count: 2
--key
--phrase: "hello"
--count: 1
--topPhrases_byMonth
--201905
--keyA
--phrase: "who are you"
--count: 2
--key
--phrase: "hello"
--count: 1
--201906
--keyA
--phrase: "who are you"
--count: 2
--key
--phrase: "hello"
--count: 1
В качестве альтернативы, сохраните все агрегации в виде одного списка и используйте префиксы, чтобы указать их уровень агрегации (и формат остальной части ключа):
stats
--topPhrases
--keyA
--phrase: "who are you"
--count: 2
--key
--phrase: "hello"
--count: 1
day_20190607
--keyA
--phrase: "who are you"
--count: 2
--key
--phrase: "hello"
--count: 1
day_20190608
--keyA
--phrase: "who are you"
--count: 2
--key
--phrase: "hello"
--count: 1
week_201922
--keyA
--phrase: "who are you"
--count: 2
--key
--phrase: "hello"
--count: 1
week_201923
--keyA
--phrase: "who are you"
--count: 2
--key
--phrase: "hello"
--count: 1
month_201905
--keyA
--phrase: "who are you"
--count: 2
--key
--phrase: "hello"
--count: 1
month_201906
--keyA
--phrase: "who are you"
--count: 2
--key
--phrase: "hello"
--count: 1
Вы определенно дублируете много данных здесь, но преимущество этих моделей в том, что отображение статистики пользователю теперь тривиально. Это общий компромисс с базами данных NoSQL, запись данных становится более сложной, и сохраняется больше (дубликатов) данных, но это делает чтение данных тривиальным и, следовательно, очень масштабируемым.