javascript 我将不得不在mongodb中对数据进行排序按分页对数据进行排序

dfty9e19  于 2023-04-04  发布在  Java
关注(0)|答案(2)|浏览(140)

我将不得不按数据和分页对数据进行排序。这是我使用的查询response.data= await distributorDoc.find().sort({“TimeStamp”:-1,});它是pagination pagination:{ totalCount:0,pageCount:0,当前页:页,每页:reqData.perPage||每页计数}
response.data = await distributorDoc.find().sort({“TimeStamp”:-1,“perpage”==100});

ncecgwcz

ncecgwcz1#

您可以尝试使用MongoDB中的limitskip方法。
MongoDB中的limit()函数用于指定要返回的最大结果数
如果你想在某些文档后得到一定数量的结果,你可以使用skip()函数。
用于分页的Node JS代码示例:

function fetchDocs(pageNumber, nPerPage) {
        console.log('Page: ' + pageNumber);
        distributorDoc.find()
          .sort({'TimeStamp': -1})
          .skip(pageNumber > 0 ? ((pageNumber - 1) * nPerPage) : 0)
          .limit(nPerPage)
          .forEach(doc => {
              console.log(doc);
          });
     }

阅读更多关于他们在这里
limit()
skip()
查看此link以了解其他替代方案
希望这就是你要找的。

yzuktlbb

yzuktlbb2#

这里有一个例子,假设你有以下变量,你可以这样做:

页码:当前页码。
每页:每页要显示的项目数。
distributorDoc:分销商文档的Mongoose模型。

// Set the page and perPage variables based on the request data or use the default values.
const page = reqData.page || 1;
const perPage = reqData.perPage || perPageCount;

// Calculate the totalCount using the countDocuments() method.
const totalCount = await distributorDoc.countDocuments();

// Calculate the pageCount by dividing the totalCount by perPage and rounding up.
const pageCount = Math.ceil(totalCount / perPage);

// Calculate the skipItems to determine how many items to skip based on the current page number.
const skipItems = (page - 1) * perPage;

// Modify the query to include .skip(skipItems) and .limit(perPage) for implementing pagination.
response.data = await distributorDoc.find()
  .sort({ "TimeStamp": -1 })
  .skip(skipItems)
  .limit(perPage);

// Update the response.pagination object with the new values.
response.pagination = {
  totalCount: totalCount,
  pageCount: pageCount,
  currentPage: page,
  perPage: perPage
};

相关问题