簡體   English   中英

選擇求和列並通過Mongodb和Laravel分組

[英]select sum column and group by with Mongodb and Laravel

我的查詢有問題:

在此處輸入圖片說明

我想要

選擇SUM為“ amount”且GROUP BY為“ user_id”的“ user_info”

我正在使用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服務器上的本機代碼,而不是基本包裝mapReduce方法的.groupBy()方法。

考慮以下使用$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")
            )
        )   
    ));
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM