Я полагаю, у нас есть эти данные
{ "_id" : 1, "item" : "abc", "quantity" : 2, "category" : 1}
{ "_id" : 2, "item" : "jkl", "quantity" : 1, "category" : 1}
{ "_id" : 3, "item" : "xyz", "quantity" : 5, "category" : 2}
{ "_id" : 4, "item" : "abc", "quantity" : 10, "category" : 2}
{ "_id" : 5, "item" : "xyz", "quantity" : 10, "category" : 3}
{ "_id" : 6, "item" : "cds", "quantity" : 9, "category" : 3}
Я хочу сделать запрос, который даст мне категорию, содержащую наибольшее количество. поэтому я должен:
1- Группировка по категориям
2- Суммируйте количество предметов в каждой категории.
3- Получите наибольшее значение среди этих сумм.
Итак, в Mongodb я получил небольшую помощь здесь:
db.items.aggregate([
{ $match: {} },
{ $group: {
_id: '$category',
sumQ: {$sum: '$quantity'}
}
},
{ $sort: {sumQ: -1 } },
{ $limit: 1 }
])
Но когда я хочу преобразовать это с помощью createAggregationBuilder
Я не мог найти, как это сделать.

Для тех, кто ищет ту же проблему, я нашел решение:
$builder = $this->dm->createAggregationBuilder(Production::class);
$builder
->match()
// put what you want here
->group()
->field('id')
->expression('$category')
->field('quantity')
->sum('$quantity')
->sort(['quantity' => -1])
->limit(1)
что он возвращает?