У меня проблема с моим запросом:
я бы хотел
ВЫБЕРИТЕ «user_info» с SUM «сумма» и GROUP BY «user_id»
Я использую 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, а не .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")
)
)
));
});