@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});

но возвращается весь документ целиком.
  • Вопрос задан
  • 130 просмотров
Решения вопроса 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...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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