Що робить стадія $project?
Стадія $project формує нову "проєкцію" документа - тобто обирає, перейменовує чи обчислює поля, які потраплять далі в pipeline. Аналог за змістом - SELECT в SQL.
Що вона може робити
- лишити лише потрібні поля
- приховати зайві поля
- створити обчислювані поля
- перейменувати поля
- вкласти чи розкласти дані по-іншому
Приклад
js
{
$project: {
name: 1,
totalPrice: { $multiply: ["$price", "$qty"] }
}
}Після $project у документі лишаться лише name і нове поле totalPrice.
Ключовий сенс
$project - це стадія формування кінцевого набору полів, завдяки якій документ можна спростити, перезібрати й підготувати до наступної стадії чи фінальної відповіді.
Коротка відповідь
Для співбесідиPremium
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.