如何在 laravel 控制器中访问 MongoDB 光标返回的数据?



我正在使用 Laravel 5.6 和 MongoDB 使用 Jenssegers 包

在这里,我想像在 Mysql 中所做的那样,使用组通过一种方法获取总数。

select latitude,longitude,count(*) as `count` from event_logger group by latitude,longitude

根据该软件包的文档,在MongoDB中,我们不能像在雄辩中那样简单地使用聚合函数,而是必须使用MongoDB语法的原始查询。

public static function getUsersByTypeLogin()
{
$q = self::raw()->aggregate(
[
array(
'$group'=>array(
'_id'=>array(
'lat'=>'$latitude',
'long'=>'$longitude'
),
'count'=>array('$sum'=>1)
)
)
]
);
dd($q);
}

当我做dd(dump and die(时,结果我变得Cursor {#586}。 那么基本上如何将光标中的数据获取/访问到我的 laravel 应用程序中?

我也在用这个包一个项目。我使用的是返回聚合数据的原始闭包方法。

例如:

$data = YourModel::raw(function($collection)
{
return $collection->aggregate(
[
array(
'$group'=>array(
'_id'=>array(
'lat'=>'$latitude',
'long'=>'$longitude'
),
'count'=>array('$sum'=>1)
)
)
]
);
});

$data应该是您的数据。

你能试试上面的代码吗?

使用

foreach ($q as $row) {
//$row contains data for every row
}

其中 q 是光标。

最新更新