-1

我的实际文档比这更复杂,但像这样简化它们将解释我想要解决的问题。我有每天和每周的文件。

每日文件:ObjectId, Type, Count, Date

每周文件:ObjectId, Type, Count, StartDate, EndDate

如果我想要一份每日报告,我可以运行一个查询,该查询将选择日期字段值在 X 到 Y 范围内且类型等于“每日”的文档。我可以为每周报告做同样的事情,而且一切正常。

问题:

对于每周报告,如果开始日期不是一周的第一天并且结束日期不是一周的最后一天,选择类型为“每周”的文档将生成不准确的报告,因为每周文档存储整周的数据. 这可能看起来很奇怪,但 Google Analytics 可以让您这样做:

在此处输入图像描述

在上面的截图中,7 月 3 日不是该周的开始,7 月 17 日也不是该周的结束。但谷歌分析可以让你随心所欲地查看数据。

可能的解决方案:

一种可能的解决方案是生成溢出天数的每日报告,然后从每周报告中减去它。

问题:

有没有更好的解决方案来解决我描述的问题?我愿意重新设计文件

4

1 回答 1

0

对于每周报告,如果开始日期不是一周的第一天并且结束日期不是一周的最后一天,选择类型为“每周”的文档将生成不准确的报告,因为每周文档存储整周的数据. 这可能看起来很奇怪,但 Google Analytics 可以让您这样做:

因为他们不存储这样的文件。

这种工作方式(我认为)是谷歌只是对日常文档进行总结,忽略你的“周”范围并应用他们自己的说法:

获得尽可能多的完整周数并汇总该范围内的每日文档

接着:

只需将其他人放在上面,使每个人成为终点和起点

我不会尝试在这里混合每周和每日文档,我只会查询每日文档并聚合客户端。

于 2012-08-09T13:01:27.557 回答