MongoDB跳过太多文档(分页)

时间:2018-10-18 08:59:25

标签: node.js mongodb

大家! 我在Nodejs上的MongoDB驱动程序有问题。 我在前端有一个分页组件,它可以从后端选择一些文档(默认为10个文档)。所以我的后端有下一个代码:

  const itemsPerPage = req.body.per_page;
  const currentPage = req.body.current_page;
  let skip = math.eval((currentPage - 1) * itemsPerPage);

   let transactions = await collection.find({})
    .sort(sortParam)
    // .collation({locale: "en_US", numericOrdering: true})
    .project({
      "date": 1,
      "from": 1,
      "to": 1,
      "hash": 1,
      "val": 1
    })
    .skip(skip)
    .limit(itemsPerPage)
    .toArray(); // in sort 1 for asc and -1 for desc
    console.log('skip: ' + skip);
    console.log('limit: ' + itemsPerPage);

问题是当我尝试在组件上获取“最后一页”时,mongo向我抛出了一个空数组。而且,如果我尝试获取上一页,则它恰好为我提供了最后一页,有时,当我使用具有相同模型的类似集合时,也会在最后一页之前的页面上抛出空数组。因此,似乎问题不在前端或后端代码中,而与mongo类似。但是,当我将完全相同的查询粘贴到Studio3T或Robomongo中时,它可以正常工作。请帮助,我真的很困惑。 我为另一个非常相似的组件使用了几乎相同的代码,该组件可与另一个集合一起使用,一切正常。

0 个答案:

没有答案