Предыдущая статья: “MongoDB: запрос, обновление и удаление документа”

В MongoDB проекция означает выбор не всех данных документа, а только нужных. Например, эта операция позволяет из 5-ти полей, содержащихся в документе, отобразить только 3.

Метод find()

Обратимся к методу find(), рассмотренному в разделе “MongoDB: запрос документа”. Он принимает второй необязательный параметр, представляющий собой список полей, которые необходимо извлечь. При выполнении метода find() отображаются все поля документа. Чтобы установить ограничения, нужно задать список полей со значениями 1 или 0. 1 показывает поля, а 0 скрывает их. 

Telegram-канал по теме
NOP::Nuances of ProgrammingСтатьи и переводы для разработчиков — каждый день
Подписаться

Синтаксис 

Основной синтаксис метода find() с проекцией: 

>db.COLLECTION_NAME.find({},{KEY:1})

Пример

Допустим, коллекция mycol содержит следующие данные: 

{_id : ObjectId("507f191e810c19729de860e1"), title: "MongoDB Overview"},
{_id : ObjectId("507f191e810c19729de860e2"), title: "NoSQL Overview"},
{_id : ObjectId("507f191e810c19729de860e3"), title: "NOP Overview"}

Отобразим название документа при его запросе: 

>db.mycol.find({},{"title":1,_id:0})
{"title":"MongoDB Overview"}
{"title":"NoSQL Overview"}
{"title":"NOP Overview"}
>

Обратите внимание, что при выполнении метода find() всегда отображается поле _id. Если же в этом поле нет необходимости, то установите для него значение 0. 

Читайте также:

Мы в Telegram — подписывайтесь
NOP::Nuances of ProgrammingСтатьи и переводы для разработчиков — каждый день
Подписаться
NOP::HumorИТ-юмор и мемы о боли разработчиков
Подписаться
NOP::Recruiter RemoteУдалённые ИТ-вакансии с вилками
Подписаться
Предыдущая статья27 важных однострочных функций JavaScript, используемых разработчиками ежедневно
Следующая статьяMongoDB: ограничение отображаемых документов