dongyishe6689 2018-09-06 06:44
浏览 69
已采纳

MongoDB PHP使用条件聚合数据

I have 2 different pipelines: with condition

$pipeline = array(
            array('$match' => array(
                'currentStep' => 'CREATE')),
            array('$group' => array(
                '_id' => '$name',
                'value' => array('$sum' => 1)
            )));

and without

$pipeline = array(
            array('$group' => array(
                '_id' => '$name',
                'value' => array('$sum' => 1)
            )));

How combine them in one single $pipeline in order to get such output:

_id - value_with_match_condition - value_without
  • 写回答

1条回答 默认 最新

  • dongshuql24533 2018-09-06 07:21
    关注

    In order to do this, you will need to combine the use of $sum with $cond. For instance, it might look something like this:

    $pipeline = array(
        array('$group'=>array(
            '_id'=>'$name',
            'sum_matching'=>array(
                '$sum'=>array('$cond'=>array(
                    'if'=>array('$eq'=>array('$currentStep', 'CREATE')),
                    'then'=>1,
                    'else'=>0
                )),
            ),
            'sum_all'=>array('$sum'=>1)
        ))
    );
    

    This is untested, but something matching this general form should work.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试,帮帮忙吧
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建