mongodb累积数据的模式设计

时间:2013-09-13 22:20:17

标签: mongodb

我正在搜索和研究我该怎么做...我读了很多类似的用例,但我需要更复杂一些。

我需要收集这些信息:

** 2013年4月至2013年9月之间的报告**

1-每月未累计报告:

  

group1:{        “04”:{“照片”:1,“文件”:2,“喜欢”:0},        ...        “09”:{“照片”:0,“文档”:3,“喜欢”:10}},group2:...

我的group1有1张照片,2张文件,0张喜欢这个mounth(4)。   我的小组2 ......

2-每月累积报告:

  group1: {
     "04" : {"photos" : 10, "documents" : 20, "likes" : 500},
     ...
     "09" : {"photos" : 100, "documents" : 200, "likes" : 3000}
  },
  group2: ...

自创建群组以来,我的群组1共有10张照片,20张文件和500张喜欢的照片。

我也会有每日未累积的报告和每日累计报告。

累积的报告是我的小组每月/每天的照片,文档和喜欢的数量,就像历史报告一样。 未累积的报告是我的小组仅在本月/日获得了多少照片,文档和喜欢。

我看到的很多用例,它是关于页面浏览的,像google这样的分析......但是任何人都有累积的数据...... 任何人都知道我的情况有更好的架构设计吗?

谢谢, 迭

1 个答案:

答案 0 :(得分:0)

我得到了!

我创建了3个收藏:

accumulated_stats: :_id, :photos, :documents

monthly_stats: :_id, date, :counts {:photos, :documents}, accumulated {:photos, :documents}

daily_stats: :_id, date, :counts {:photos, :documents}, accumulated {:photos, :documents}

现在,对于每个动作,我将增加cumulative_stats,获得结果并增加每日和每月的统计数据。它也有效!

但是为了显示数据..我不会有所有日期时间..例如:

2013-09-10
2013-09-11 ( do not have )
2013-09-12
2013-09-13

我正在寻找一种方法来构建完美的日期范围。例如,我的收藏品中没有第11天,我怎么能带上最后存在的价值呢?任何想法?

谢谢, 迭