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

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

введите описание изображения здесь

я бы хотел

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

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

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

1

Решение

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

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

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

1

Другие решения

Для повышения производительности используйте методы структуры агрегации базового драйвера 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")
)
)
));
});
1

По вопросам рекламы [email protected]