выберите столбец суммы и сгруппируйте с помощью Mongodb и Laravel

У меня проблема с моим запросом:

я бы хотел

ВЫБЕРИТЕ «user_info» с SUM «сумма» и GROUP BY «user_id»

Я использую Laravel 5 иjenssegers / Laravel-MongoDB

Огромное спасибо.

Ответы на вопрос(2)

и базового драйвера 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")
            )
        )   
    ));
});

http://laravel.io/forum/10-05-2014-raw-select-using-jenssegers-laravel-mongodb

проверьте ссылку выше или используйте это, как я пишу.

$total = DB::table('user_info')->sum('amount')->groupBy('user_id')->get();

 Dzung Nguyen16 июн. 2016 г., 08:15
Спасибо Tejas, если я использую MYSQL: Это как:SELECT user_id, ..., SUM("amount") as total_amount FROM table WHERE ... AND ... GROUP BY user_id;   Я использую ваш код, и он не работает со мной. У меня есть некоторые проблемы:- Field "amount" save by STRING type (can not SUM in normal) - Some WHERE in query. Благодарю.

Ваш ответ на вопрос