Php 使用Mongodb和Laravel选择“求和列”和“分组依据”
我对我的查询有疑问: 我想 选择“用户信息”和“金额”,并按“用户id”分组 我正在使用Laravel 5和jenssegers/Laravel mongodb 非常感谢。 检查上面的链接,或者在我写的时候用这个Php 使用Mongodb和Laravel选择“求和列”和“分组依据”,php,mongodb,laravel,aggregation-framework,jenssegers-mongodb,Php,Mongodb,Laravel,Aggregation Framework,Jenssegers Mongodb,我对我的查询有疑问: 我想 选择“用户信息”和“金额”,并按“用户id”分组 我正在使用Laravel 5和jenssegers/Laravel mongodb 非常感谢。 检查上面的链接,或者在我写的时候用这个 $total=DB::table('user_info')->sum('amount')->groupBy('user_id')->get() 检查上面的链接,或者在我写的时候用这个 $total=DB::table('user_info')->sum('amount')->grou
$total=DB::table('user_info')->sum('amount')->groupBy('user_id')->get()代码>
检查上面的链接,或者在我写的时候用这个
$total=DB::table('user_info')->sum('amount')->groupBy('user_id')->get()
为了获得更好的性能,请使用底层MongoDB驱动程序的聚合框架方法,因为它使用MongoDB服务器上的本机代码,而不是基本上包装mapReduce方法的.groupBy()
方法
考虑以下使用管道和运算符进行求和聚合的聚合操作:
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")
)
)
));
});
为了获得更好的性能,请使用底层MongoDB驱动程序的聚合框架方法,因为这将使用MongoDB服务器上的本机代码,而不是基本上包装mapReduce方法的
.groupBy()
方法
考虑以下使用管道和运算符进行求和聚合的聚合操作:
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")
)
)
));
});
感谢Tejas,如果我使用MYSQL:It like:
选择user_id,…,SUM(“amount”)作为表中的total_amount,其中。。。和按用户标识分组代码>我使用你的代码,但它对我不起作用。我有一些问题:-字段“amount”按字符串类型保存(正常情况下不能求和)
-查询中的一些地方。
谢谢。谢谢Tejas,如果我使用MYSQL:它像:选择用户id,…,SUM(“amount”)作为表中的总金额,其中。。。和按用户标识分组代码>我使用你的代码,但它对我不起作用。我有一些问题:-按字符串类型保存的字段“金额”(正常情况下不能求和)
-查询中的某些位置。
谢谢。