Как выбрать конкретные данные из моего набора данных MondoDB

#node.js #reactjs #mongodb

#node.js #reactjs #mongodb

Вопрос:

Я хотел бы знать, как бы вы выбрали только определенные данные для отправки в мой штат, поскольку на данный момент он отправляет все, и мне нужны только такие вещи, как ‘firstname’, ‘lastname’, email и т.д.

Вот что у меня есть для моего внутреннего вызова в NodeJS:

 // @route   GET api/users
// @desc    Get Users
// @access  Public
router.get('/', async (req, res) => {
  try {
    const users = await Users.find()
      .limit(1500)
      .populate('type_id', ['description'])
      .populate({
        path: 'squad',
        select: ['squad_id', 'squad_name'],
        populate: {
          path: 'consultant',
          select: ['firstname', 'lastname'],
        },
      })
      .populate({
        path: 'agent_id',
        select: ['firstname', 'lastname'],
      });
    res.json(users);
  } catch (error) {
    console.error(error.message);
    res.status(500).send('Server Error');
  }
});
  

Данные в MongoDB

Ответ №1:

Если я хорошо понял ваш вопрос, вы можете использовать select() метод from mongoose (я предполагаю, что вы используете mongoose для просмотра вашего кода).

select() работает так же, как и в этом примере.

Вы запускаете запрос, а затем выбираете, какие поля вы хотите включить в ответ.

Правильный способ его кодирования заключается в следующем:

 query.select({ field1: 1, field2: 1 });
//or
query.select('-field1');
//and many other ways
  

Документы здесь

На ваш вопрос, что-то вроде:

 var query = await model.find().YourMethodsHere().select({firstname:1, lastname:1, email:1})