mon goose .find с разбиением на страницы, возвращающим 0 элементов - PullRequest
0 голосов
/ 27 мая 2020

Я пытаюсь заставить пагинацию работать правильно, но по какой-то причине mon goose возвращает ноль элементов.

Вот соответствующий код в nodejs:

if (req.query.name) {
  match.name = req.query.name;
}


// initial pageSize is 2
// initial page is 1
pageSize = parseInt(req.query.pagesize);
page = parseInt(req.query.page);
const foods = await Food.find({ match })
  .skip(pageSize * (page - 1))
  .limit(pageSize);
res.send({
  foods,
});

Теперь я использовал ту же технику, используя .populate с другим маршрутом, и получил результат, который я ищу, например:

await req.user
.populate({
    path: 'pets',
    options: {
      limit: req.query.pagesize,
      skip: req.query.pagesize * (req.query.page - 1),
    },
  })
  .execPopulate();

Я не могу понять, что не так. В базе 20 предметов. Если я удалю .limit и .skip и получу только .find, я получу все элементы.

1 Ответ

3 голосов
/ 27 мая 2020

Похоже, вы вставляете неправильное значение в .find ()

Разве вы не должны помещать .find({name: req.query.name}) или .find(match) в вашем случае ??

Теперь он говорит ({match: {name: req.query.name}}), что, по-моему, не работает

...