Как строка запроса может выполнять поиск в данных с помощью mongoose?

#node.js #mongoose

Вопрос:

Я использую mongoose-paginate для разбивки на страницы, и я хочу добавить поиск для своего проекта… Как можно выполнить поиск строки запроса с помощью узла mongoose, подобного этому примеру … (/allStudents?stdID=440033)

 My code is:

router.get('/allStudents', async (req,res) => {

  const limit = parseInt(req.query.limit, 4) || 4;
  const page = parseInt(req.query.page, 10) || 1;

  const PAGE_SIZE = 10;
  const skip = (page - 1) * PAGE_SIZE;

  try {

     const students = await Student.paginate({}, {limit, page, skip}) 
        ||  await Student.find({ stdID:  req.query.stdID})

     return res.status(200).json({
        success: true,
        data: students
     })

 } catch (err) {
       console.log(err);
 }


});
 

Ответ №1:

Вы должны передать свой запрос в качестве первого параметра в соответствии с документацией:

 const students = await Student
    .paginate(
        {stdID: req.query.stdID},
        {limit, page, skip}
    );
 

Комментарии:

1. Спасибо за помощь

2. Но если я удалил строку запроса, она переходит в data:[]?

3. но я удаляю строку запроса, она ничего не содержит (данные: [])

4. Я могу сделать 2 запроса для mongoose-paginate? Как?

5. Я не уверен, что понимаю, что вы имеете в виду 🙂 Может быть, опубликовать новый вопрос, в котором вы подробно описываете свою новую проблему?