Php 如何在laravel控制器中访问MongoDB游标中返回的数据?
我使用的是Laravel5.6,MongoDB使用的是 在这里,我想通过一个方法使用group获得总计数,就像我们在Mysql中所做的那样Php 如何在laravel控制器中访问MongoDB游标中返回的数据?,php,mongodb,laravel,jenssegers-mongodb,Php,Mongodb,Laravel,Jenssegers Mongodb,我使用的是Laravel5.6,MongoDB使用的是 在这里,我想通过一个方法使用group获得总计数,就像我们在Mysql中所做的那样 select latitude,longitude,count(*) as `count` from event_logger group by latitude,longitude 根据包中的文档,在MongoDB中,我们不能像在eloquent中那样简单地使用聚合函数,而是必须使用带有MongoDB语法的raw查询 public static func
select latitude,longitude,count(*) as `count` from event_logger group by latitude,longitude
根据包中的文档,在MongoDB中,我们不能像在eloquent中那样简单地使用聚合函数,而是必须使用带有MongoDB语法的raw查询
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)时,我得到的结果是游标{#586}
。
那么基本上如何将游标中的数据获取/访问到我的laravel应用程序中呢
foreach ($q as $row) {
//$row contains data for every row
}
其中q是光标。使用
foreach ($q as $row) {
//$row contains data for every row
}
其中q是光标。我也在使用这个包作为项目。我使用的是返回聚合数据的原始闭包方法 例如:
$data = YourModel::raw(function($collection)
{
return $collection->aggregate(
[
array(
'$group'=>array(
'_id'=>array(
'lat'=>'$latitude',
'long'=>'$longitude'
),
'count'=>array('$sum'=>1)
)
)
]
);
});
$data
应该是您的数据
你能试试上面的代码吗?我也在用这个软件包做项目。我使用的是返回聚合数据的原始闭包方法 例如:
$data = YourModel::raw(function($collection)
{
return $collection->aggregate(
[
array(
'$group'=>array(
'_id'=>array(
'lat'=>'$latitude',
'long'=>'$longitude'
),
'count'=>array('$sum'=>1)
)
)
]
);
});
$data
应该是您的数据
你能试试上面的代码吗