Как сделать группировку в mongodb?

Пользователь

от margaret , в категории: SQL , 7 месяцев назад

Как сделать группировку в mongodb?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от cayla , 7 месяцев назад

@margaret 

Для выполнения группировки в MongoDB можно использовать оператор агрегации $group. Оператор $group объединяет документы по заданному ключу и выполняет над ними агрегирующую функцию.


Например, если у вас есть коллекция документов orders, каждый документ которой содержит информацию о заказе, такую как customer, product, quantity и price, то вы можете выполнить группировку по полю customer и вычислить общую сумму заказов для каждого клиента следующим образом:

1
2
3
db.orders.aggregate([
   { $group: { _id: "$customer", total: { $sum: { $multiply: [ "$quantity", "$price" ] } } } }
])


В данном примере $group используется для группировки документов по полю customer. Затем для каждой группы вычисляется общая сумма заказов с помощью оператора $sum, умножая количество quantity на цену price. Результатом будет список документов, каждый из которых содержит _id - идентификатор клиента, и total - общая сумма заказов.


Кроме $sum в MongoDB доступны и другие операторы агрегации, такие как $avg, $min, $max, $first, $last и др. С их помощью можно выполнять различные агрегирующие функции для групп документов.