Задать вопрос
@304

Как получить только небходимые поля?

Использую mongo native драйвер для node.js

Мне необходимо получить только 2 поля, сейчас реализую так
return ( async() => {
    let res = await collection.findOne({username:userName});
    return {
      id : res.id,
      userName : res.username
    };
  })();


Но так, получаю весь документ, и дальше его фильтрую - было бы производительнее сразу получать нужные поля.

В доках написано что в аргумент можно передать поля которые необходимо получить (fields)
collection.findOne(query, [fields, [options]], callback);

Передаю так
let res = await collection.findOne({username:userName},{id : true, username : true});

но возвращается весь документ целиком.
  • Вопрос задан
  • 133 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Бэкенд на Node.js для фронтенд-разработчиков
    3 месяца
    Далее
  • Skillbox
    Node.js
    2 месяца
    Далее
  • Stepik
    Microservices - паттерны и практика построения микросервисов
    1 неделя
    Далее
Решения вопроса 1
@RidgeA
let res = await collection.findOne({username:userName},{projection:{id : 1, username : 1}});

fields - depricated
mongodb.github.io/node-mongodb-native/3.0/api/Coll...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы