嗨,我必須在 NodeJS 和 MongoDB 中添加分頁我已經完成了這段代碼
router.get("/PO_pagination", verify, async (req, res) => {
console.log("req.query", req.query)
try {
let { page, size } = req.query
if (!page) {
page = 1
}
if (!size) {
size = 10
}
const limit = parseInt(size)
const skip = (page - 1) * size
const po = await PurchaseOrders.find().limit(limit).skip(skip)
return res.send({
page: page,
size: size,
data: po
})
} catch (error) {
console.log("error", error)
return res.status(400).json({ error: error })
}
})
我正在獲取資料,req.query但我也想根據限制回傳總頁數,并跳過從查詢中獲取,就像我說的page=1&limit=200那樣,它根據查詢引數排列總頁數。另外,我想補充的next和prev在res。比如下一頁有多少頁,上一頁有多少頁。
uj5u.com熱心網友回復:
您可以使用countDocuments()獲取檔案總數,然后您可以計算您請求的資料。
router.get("/PO_pagination", verify, async (req, res) => {
console.log("req.query", req.query)
try {
let { page, size } = req.query
if (!page) page = 1;
if (!size) size = 10;
const limit = parseInt(size)
const skip = (page - 1) * size
const po = await PurchaseOrders.find().limit(limit).skip(skip);
const total_documents = await PurchaseOrders.countDocuments();
const previous_pages = page - 1;
const next_pages = Math.ceil((total_documents-skip)/size);
return res.send({
page: page,
size: size,
data: po,
previous: previous_pages,
next: next_pages
})
} catch (error) {
console.log("error", error)
return res.status(400).json({ error: error })
}
})
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/357803.html
標籤:javascript 节点.js MongoDB 猫鼬 分页
上一篇:在貓鼬中填充嵌套模型
