Laravel与Mongo DB聚合给我错误

时间:2019-12-24 07:24:34

标签: laravel mongodb aggregate

我正在使用Mongodb,当我在Mongo中运行查询时遇到问题,但它成功了,但是当我重新编写它并在Laravel中运行它时,出现了此错误:

  

管道阶段规范对象必须只包含一个字段。

这是我在Mongodb中直接执行的查询,并且运行良好:

db.logss.aggregate([
    {
        $group: {
            _id: "$ApplicationName",
            "count": {$sum: 1}
        }
    },
    {
        $sort: {"count": -1}
    }
]);

这是我在Laravel中的代码,但是给我那个错误

return $collection->aggregate([
    [
        '$group'    => [
            '_id'   => '$ApplicationName',

            'count' => [
                '$sum'  => 1
            ]
        ],
        ['$sort' => ['count' => -1]] 
    ]
]);

1 个答案:

答案 0 :(得分:1)

这是一个Mongo错误,Mongo抱怨管道不是“正确”格式,我想在这里您只是错过了一个括号,请尝试以下操作:

return $collection->aggregate([
    [
        '$group'    => [
            '_id'   => '$ApplicationName',

            'count' => [
                '$sum'  => 1
            ]
        ]
    ],
    ['$sort' => ['count' => -1]]
]);
相关问题