首页 > 解决方案 > MongoDB查询聚合函数重新调整空结果

问题描述

以下是我为根据事件名称获取计数而编写的查询。

$data= DB::collection(Events::$collection)->raw(function($collection) {
    return $collection->aggregate([
    ['$match' => ['appid' => 1]],
    ['$group' => ['_id' =>['Event' =>'$Event'], 'count' =>['$sum'=>1]]]
    ]);
});

当我使用 laravel eloquent 查询日志打印上述查询时,其显示输出如下:

Array ( 
[query] => events.aggregate([{"$match":{"appid":1}},{"$group":{"_id":{"Event":"$Event"},"count":{"$sum":1}}}]) 
[bindings] => Array ( ) [time] => 9.93 
)

数据库查询如下:

db.events.aggregate([{"$match":{"appid":1}},{"$group":{"_id":{"Event":"$Event"},"count":{"$sum":1}}}])

如果我在 NoSQLBooster for MongoDB 中运行同样的事情,那么它会正确地重新调整结果。

但是上面的 laravel mongodb 查询返回的是空结果。我没有得到什么问题。需要帮助。

我正在使用以下版本的 laravel 和 mongodb。

Laravel Version : 5.4
MongoDB Version : 3.6

提前致谢。

标签: mongodblaravellaravel-5jenssegers-mongodb

解决方案


推荐阅读