mongodb $project Что это в агрегации

Оператор $project

Предназначен для манипулирования полями, может добавлять новые, удалять и переименовывать их в документах, поступающих ему на вход. Следующая конструкция включит в поток документов (отфильтрует) только имена и возраст пользователей:

{$project: {name: 1, age: 1}}

На вход следующего оператора попадут все документы только с двумя полями, других полей в потоке не будет (за исключением поля _id, что бы его исключить надо специально указать _id: 0).
Цифра 1 включает, цифра 0 исключает передачу поля.

Кроме того этот оператор позволяет:

  • переименовывать поля,
  • «доставать» поля из вложенного объекта какого-либо поля
  • или же добавлять новые поля на основе каких-либо вычислений.

Источник:
https://habrahabr.ru/post/139643/

Key Words for FKN + antitotal forum (CS VSU):