MongoDB Aggregation Framework — это мощный инструмент для выполнения сложных преобразований данных и аналитики прямо в базе данных. Он обрабатывает документы через последовательность операций, называемую pipeline.
Pipeline — это упорядоченная последовательность стадий. Каждая стадия получает документы из предыдущей, применяет операцию и передаёт результаты дальше. Это позволяет тебе строить сложные запросы, соединяя простые, сфокусированные шаги в цепочку.
$match — фильтрует документы на раннем этапе, чтобы уменьшить рабочий набор данных$group — группирует документы по полю и вычисляет агрегаты, такие как суммы или средние значения$sort — упорядочивает результаты$project — переформатирует документы, включая, исключая или переименовывая поля$limit / $skip — контролирует количество возвращаемых документовdb.orders.aggregate([
{ $match: { status: "completed" } },
{ $group: { _id: "$customerId", total: { $sum: "$amount" } } },
{ $sort: { total: -1 } }
])
Этот pipeline фильтрует завершённые заказы, группирует их по клиентам, вычисляет общую сумму расходов и сортирует результаты в порядке убывания.
$match в начале — ключевая оптимизация, так как это сокращает количество документов, обрабатываемых последующими стадиямиВ конвейере агрегации MongoDB каждый этап обрабатывает все документы из исходной коллекции независимо от операций, выполненных предыдущими этапами.
Новый — ещё не проверен сообществом
Вы