Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
来自两个不同匹配日期的mongodb聚合_Mongodb - Fatal编程技术网

来自两个不同匹配日期的mongodb聚合

来自两个不同匹配日期的mongodb聚合,mongodb,Mongodb,我需要在集合A上构建聚合。 某些字段最多可聚合5分钟匹配,而其他字段最多可聚合1小时匹配。 如果我在管道中添加步骤以匹配5分钟,那么我不能有1小时来计算另一组。 如何在同一个查询中实现这一点,以便在一个plcace中生成所有结果 先谢谢你 将所有结果构建在一个地方 这是可能的,但它相当复杂。如果有两个聚合都将结果输出到一个新的集合中以保存这些结果,那么这样做会容易得多。然后,您仍然可以在单个位置获得结果,而无需复杂的查询 如果您真的想通过一个查询来完成此操作,那么以下是一种方法: 聚合到5分钟的

我需要在集合A上构建聚合。 某些字段最多可聚合5分钟匹配,而其他字段最多可聚合1小时匹配。 如果我在管道中添加步骤以匹配5分钟,那么我不能有1小时来计算另一组。 如何在同一个查询中实现这一点,以便在一个plcace中生成所有结果

先谢谢你

将所有结果构建在一个地方

这是可能的,但它相当复杂。如果有两个聚合都将结果输出到一个新的集合中以保存这些结果,那么这样做会容易得多。然后,您仍然可以在单个位置获得结果,而无需复杂的查询

如果您真的想通过一个查询来完成此操作,那么以下是一种方法:

  • 聚合到5分钟的水平
    • 处理五分钟的数据,就像只查询数据一样
    • 开始聚合小时数据
  • 聚合到小时级别
    • 将五分钟的数据推入阵列
    • 计算小时累计
  • 每个文档的结果都表示一个小时,并且有一个数组表示该小时内12个五分钟时段中的每个时段的数据


    你需要记住的一件事是,一些事情,比如平均数,应该在你汇总完数据后计算出来。您可以在最后添加一个
    $project

    尝试添加一个您已经尝试过的查询,或者添加一组示例文档,这样可以更容易地查看您正在尝试执行的操作。