【问题标题】:lumen and mongodb and aggregate流明和mongodb和聚合
【发布时间】:2016-12-25 01:18:59
【问题描述】:

我想对组使用聚合,但是我如何像这样使用 laravel-mongodb:

// col
    $pipeline =  $this->getCollection() -> createPipeline();
    $pMatchArr = array(
            'ij_statistics_time' => array(
                '$gte'  => $_intStartTime,
                '$lte'  => $_intEndTime
            )
    );
    if(!empty($_intUid)){
        $pMatchArr['ij_uid'] = $_intUid;
    }
    $pipeline->match($pMatchArr);
    // get date
    $pipeline = $pipeline->group(
        array(
            '_id'=>'$ij_uid',
            'level_one_count'=>array( '$sum'=>'$ij_level_one_new_num' ),
            'level_two_count'=>array( '$sum'=>'$ij_level_two_new_num' ),
            'level_three_count'=>array( '$sum'=>'$ij_level_three_new_num' ),
            'level_four_count'=>array( '$sum'=>'$ij_level_four_new_num' ),
            'level_five_count'=>array( '$sum'=>'$ij_level_five_new_num' ),
            'level_six_count'=>array( '$sum'=>'$ij_level_six_new_num' ),
            'level_seven_count'=>array( '$sum'=>'$ij_level_seven_new_num' ),
            'level_eight_count'=>array( '$sum'=>'$ij_level_eight_new_num' ),
            'level_nine_count'=>array( '$sum'=>'$ij_level_nine_new_num' ),
            'level_ten_count'=>array( '$sum'=>'$ij_level_ten_new_num' ),
        )
    );
    $pipeArr = $pipeline->aggregate();
    return $pipeArr;

好像不行

$pipeArr = $cursor->groupBy( 'ij_uid' )
        ->aggregate( 'sum' , $fileds)
        ->get( $fileds );
    return $pipeArr;

我正在使用 lumen 5.2 和 jenssegers/laravel-mongodb

【问题讨论】:

    标签: mongodb lumen


    【解决方案1】:

    我使用以下方法解决问题,可以在orm原生语句中使用

        $pipeArr = self::raw( function($collection) use ($match ) {
            return $collection->aggregate([
                ['$match' => $match],
                [
                    '$group' => [
                        '_id' => '$ij_uid',
                        'level_one_count'       => [ '$sum' => '$ij_level_one_new_num'],
                        'level_two_count'       => [ '$sum' => '$ij_level_two_new_num'],
                        'level_three_count'     => [ '$sum' => '$ij_level_three_new_num'],
                        'level_four_count'      => [ '$sum' => '$ij_level_four_new_num' ],
                        'level_five_count'      => [ '$sum' => '$ij_level_five_new_num' ],
                        'level_six_count'       => [ '$sum' => '$ij_level_six_new_num' ],
                        'level_seven_count'     => [ '$sum' => '$ij_level_seven_new_num' ],
                        'level_eight_count'     => [ '$sum' => '$ij_level_eight_new_num' ],
                        'level_nine_count'      => [ '$sum' => '$ij_level_nine_new_num' ],
                        'level_ten_count'       => [ '$sum' => '$ij_level_ten_new_num' ]
                    ]
                ],
                ['$sort' => ['ij_uid' => 1]],
            ]);
        });
        return $pipeArr;
    

    【讨论】:

      猜你喜欢
      • 2015-10-11
      • 2021-12-31
      • 2020-04-25
      • 2023-03-21
      • 2016-12-25
      • 2019-06-06
      • 2018-08-25
      • 2013-03-10
      • 1970-01-01
      相关资源
      最近更新 更多