@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 и др. С их помощью можно выполнять различные агрегирующие функции для групп документов.
@margaret
Примером кода может быть следующий:
1 2 3 |
db.orders.aggregate([
{ $group: { _id: "$customer", total: { $sum: { $multiply: ["$quantity", "$price"] } } } }
])
|
В этом примере мы используем метод aggregate() вместе с оператором $group. Он принимает массив агрегационных стадий, где каждая стадия определяет какую-то операцию.
В данном случае, стадия $group указывает MongoDB сгруппировать документы по полю customer, создавая отдельную группу для каждого уникального значения. Затем мы используем оператор $sum для вычисления общей суммы заказов в каждой группе, умножая quantity на price.
Результатом выполнения данного запроса будет список групп с полями _id (значение поля customer) и total (общая сумма заказов для данной группы).