MongoDB предлагает два подхода для обработки данных: aggregation pipeline и Map-Reduce. Понимание их различий помогает выбрать правильный инструмент для каждого сценария.
Aggregation pipeline — это рекомендуемый подход для большинства сценариев. Ключевые характеристики:
$match, $group, $sort)db.orders.aggregate([
{ $match: { status: "completed" } },
{ $group: { _id: "$customerId", total: { $sum: "$amount" } } }
])
Map-Reduce использует пользовательские JavaScript-функции для обработки данных. Ключевые характеристики:
Используй aggregation pipeline когда:
Используй Map-Reduce только когда:
На практике aggregation pipeline закрывает подавляющее большинство задач эффективнее. Поскольку Map-Reduce deprecated, в новых проектах всегда нужно использовать aggregation pipeline.
Aggregation pipeline обрабатывает данные через последовательные этапы, такие как $match и $group, в то время как Map-Reduce требует написания пользовательских функций JavaScript для фаз map и reduce.
Новый — ещё не проверен сообществом
Вы