【发布时间】:2020-07-08 16:39:33
【问题描述】:
我正在创建一种方法来生成在给定时间范围内设备停机时间量的报告。我可能会处理 100 到数千个文档。每个文档都有一个开始日期和结束日期,两者都是 BSON 格式,并且通常在几分钟内。为简单起见,我还将秒数归零。
我需要做的实际聚合是我需要计算每个给定日期之间的分钟数,但可能还有其他日期重叠的文档。如果已经计算过,则不应计算任何重叠时间。我还需要进行各种其他聚合,但这是我唯一不确定的聚合,如果它甚至可能的话。
{
"StartTime": "2020-07-07T18:10:00.000Z",
"StopTime": "2020-07-07T18:13:00.000Z",
"TotalMinutesDown": 3,
"CreatedAt": "2020-07-07T18:13:57.675Z"
}
{
"StartTime": "2020-07-07T18:12:00.000Z",
"StopTime": "2020-07-07T18:14:00.000Z",
"TotalMinutesDown": 2,
"CreatedAt": "2020-07-07T18:13:57.675Z"
}
上面的两个文档是我正在使用的示例。每个文档都获取存储在文档中的两个日期之间的总分钟数(此字段用于另一个目的,不相关)。如果我要聚合它以减少总分钟数,总分钟数的输出应该是 4,因为我不想计算重叠的分钟数。
【问题讨论】:
标签: mongodb aggregation-framework