Этап $facet в MongoDB aggregation позволяет запустить несколько независимых подконвейеров в рамках одного этапа агрегации, каждый обрабатывает один и тот же набор входных документов одновременно.
$facet, получает идентичную копию входных документов{
"$facet": {
"byCategory": [{ "$group": { "_id": "$category", "count": { "$sum": 1 } } }],
"priceStats": [{ "$group": { "_id": null, "avgPrice": { "$avg": "$price" } } }],
"totalCount": [{ "$count": "total" }]
}
}
$facet не может содержать определённые этапы внутри подконвейеров, такие как сам $facet, $out или $indexStats$facet — это мощный инструмент для многомерной агрегации в одном запросе: снижает сложность и повышает производительность, устраняя необходимость в отдельных обращениях к базе данных.
Этап $facet позволяет множественным под-pipeline'ам обрабатывать одни и те же входные документы, причём каждый под-pipeline получает идентичную копию входных данных.
Новый — ещё не проверен сообществом
Вы