我有以下架构:
Customer ID
Location Name
Time of Visit
以上存储了所有客户在不同地点的访问信息。
我想知道是否有办法在 MongoDB 中编写聚合查询,以便它按一天中的不同部分、每个位置每天提供总访客信息。
当天的部分:
编辑:
12 am - 8 am
8 am - 11 am
11 am - 1 pm
1 pm - 4 pm
4 pm - 8 pm
8 pm - 12 pm
如果客户在同一天同一时段多次访问某个地点,则应仅计算一次。但是,如果该客户在同一天访问了一个位置,但在一天中的不同时段访问,则对于他出现在一天中的每个时段,都应准确计算一次。
例子:
Customer 1 visits store A on day 1 at 9:30 AM
Customer 1 visits store A on day 1 at 10:30 PM
Customer 1 visits store B on day 2 at 9:30 AM
Customer 1 visits store B on day 2 at 11:30 AM
Customer 1 visits store B on day 2 at 2:45 PM
Customer 2 visits store A on day 1 at 9:45 AM
Customer 2 visits store B on day 1 at 11:00 AM
Customer 2 visits store B on day 2 at 9:45 AM
重复访问的最终输出:
Store B, Day 1, Section (00:00 - 08:00) : 0 Visitors
Store B, Day 1, Section (08:00 - 16:00) : 2 Visitors
Store B, Day 1, Section (16:00 - 24:00) : 1 Visitors
Store B, Day 2, Section (00:00 - 08:00) : 0 Visitors
Store B, Day 2, Section (08:00 - 16:00) : 2 Visitors
Store B, Day 2, Section (16:00 - 24:00) : 0 Visitors
有没有什么办法可以使用 MongoDB 的聚合框架来完成上述类型的查询?