Laravel MongoDB结合了原始选择计数和分组依据

时间:2019-08-21 17:54:21

标签: laravel mongodb jenssegers-mongodb

我正在使用jenssegers / laravel-mongodb

我想知道是否可以使用mongodb聚合来做到这一点。我有一个数据集 enter image description here

我正在尝试实现这种结果或我可以循环进入的任何接近结果 enter image description here

我现在所拥有的是:

$collegeGender = FormData::raw( function ( $collection ) {
        return $collection->aggregate([
                ['$sortByCount' => [
                    '$mergeObjects' =>[
                        '$details.college',
                        '$details.gender'
                    ]
                ]]
            ]);
    });

但是它显示错误:

$mergeObjects requires object inputs, but input "M" is of type string

这是我的收集数据的示例

{
   '_id': '5d5d77de54f57118ac003b46',
   'details': {
      'age' : 'M',
      'college' : 'College 1',
   }
}

我也不知道我是否正确使用了聚合函数:)

1 个答案:

答案 0 :(得分:0)

'age''college'不是对象,它们只是字符串字段,因此您不能使用 $ mergeObjects合并它们相反,您应该使用 $concat