Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用Mongodb和Laravel选择“求和列”和“分组依据”_Php_Mongodb_Laravel_Aggregation Framework_Jenssegers Mongodb - Fatal编程技术网

Php 使用Mongodb和Laravel选择“求和列”和“分组依据”

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

我对我的查询有疑问:

我想

选择“用户信息”和“金额”,并按“用户id”分组

我正在使用Laravel 5和jenssegers/Laravel mongodb

非常感谢。

检查上面的链接,或者在我写的时候用这个

$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”)作为表中的总金额,其中。。。和按用户标识分组我使用你的代码,但它对我不起作用。我有一些问题:
-按字符串类型保存的字段“金额”(正常情况下不能求和)
-查询中的某些位置。
谢谢。