任何貓鼬和mongo專家可以幫助我嗎?正如標題所說,我想嘗試實作基于游標的分頁。我在這里看到了一篇關于它的舊帖子,但我想看看如何獲??得第二組帖子。
我得到了這部分
const items = db.items.find({}).sort({
_id: -1
}).limit(2);
const next = items[items.length - 1]._id
res.json({ items, next })
但是我如何應用這第二部分。我想為此創建一個單獨的路線嗎?
const items = db.items.find({
_id: { $lt: req.query.next }
}).sort({
_id: -1
}).limit(2);
const next = items[items.length - 1]._id
res.json({ items, next })
uj5u.com熱心網友回復:
您應該在 1 條路線中實作這一點,使用skip和limit。
像這樣:
const skip = Number(req.query.skip ?? 0);
const limit = Number(req.query.limit ?? 2);
const items = db.items.find({}).sort({
_id: -1
}).skip(skip).limit(limit);
const next = items[items.length - 1]._id
res.json({ items, next })
現在對于下一頁,您需要發送包含這些新查詢引數的請求:
https://myapp.com/myroute?skip=2&limit=2
- - 編輯 - - 。
使用next物件 id 進行跳過而不是skip,如下所示:
const filterQuery = {};
if (req.query.next) {
filterQuery._id = {$lt: ObjectId(req.query.next)}
}
const items = db.items.find(filterQuery).sort({
_id: -1
}).limit(2);
const next = items[items.length - 1]._id
res.json({ items, next })
電話將是:
https://myapp.com/myroute?next={{itemId}}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/337277.html
