我的查询有问题:
我想要
SELECT "user_info" 和 SUM "amount" 和 GROUP BY "user_id"
我正在使用 Laravel 5 和jenssegers/laravel-mongodb
太感谢了。
我的查询有问题:
我想要
SELECT "user_info" 和 SUM "amount" 和 GROUP BY "user_id"
我正在使用 Laravel 5 和jenssegers/laravel-mongodb
太感谢了。
http://laravel.io/forum/10-05-2014-raw-select-using-jenssegers-laravel-mongodb
检查上面的链接或在我写的时候使用它。
$total = DB::table('user_info')->sum('amount')->groupBy('user_id')->get();
为了获得更好的性能,请使用底层 MongoDB 驱动程序的聚合框架方法,因为它使用 MongoDB 服务器上的本机代码,而不是.groupBy()
基本上包装 mapReduce 方法的方法。
考虑以下使用$group
管道和$sum
运算符进行总和聚合的聚合操作:
db.collectionName.aggregate([
{
"$group": {
"_id": "$user_id",
"user_info": { "$first": "$user_info" },
"total": { "$sum": "$amount" }
}
}
]);
等效的 Laravel 示例实现:
$postedJobs = DB::collection('collectionName')->raw(function($collection) {
return $collection->aggregate(array(
array(
"$group" => array(
"_id" => "$user_id",
"user_info" => array("$first" => "$user_info")
"total" => array("$sum" => "$amount")
)
)
));
});