Mongodb 分頁寫法
阿新 • • 發佈:2018-11-26
Mongodb語句的查詢語法和傳統的關係型資料庫基本不同,Mongodb裡關於取資料的分頁有幾種不同的寫法,不同的寫法適用不同的場合,
簡單的有 limit,skip等,
如果需要取分頁資料,同時需要返回總資料條數,並且用一個查詢語句,可以用push, slice的語法
{ $slice: [ <array>, <position>, <n> ] }
{ $group: { _id: null, total: { $sum: 1 }, data: { $push: '$tmp' } } }, { $project: { total: '$total', data: { $slice: ['$data', start, length] } } }
db.collection('collection_namea') .aggregate( [ { $match: { ... } }, ... { $project: { tmp: { userid: '$userid', username: '$username', class: '$class', grade: '$grade' } } }, { $group: { _id: null, total: { $sum: 1 }, data: { $push: '$tmp' } } }, { $project: { total: '$total', data: { $slice: ['$data', start, length] } } } ] ) .toArray() .then((dataset) => { ... }) .catch((err) => { ... });