如何實現分頁功能


  • 註冊用戶

    想請教在mongoDB上想要實現分頁功能該如何做?

    舉例來說.

    每頁取20筆資料

    在mysql上我可以透過limit 0,20的方式來限制取得前20筆資料.

    取第二頁時就可以用limit 20,20

    在mongodb上該怎麼樣來實現這樣的功能


  • 註冊用戶

    MongoDB是通過limit(),skip(),sort()這三個函數組合來進行分頁查詢

    例如:
    查詢第一頁: db.timelog.find().sort({"starttime":1}).limit(2);
    查詢第二頁: db.timelog.find().sort({"starttime":1}).skip(2).limit(2);
    查詢其他頁數請依此類推


  • Lv 1

    提供另外一個單筆資料上下筆紀錄查詢的方式
    可以透過時間字段來查詢上下筆資料
    db.[databasename].find({ ‘created’: { '$lt': created } }).sort({_id: -1}).limit(1)
    db.[databasename].find({ 'created': { '$gt': created } }).sort({_id: 1}).limit(1)
    取多筆資料的,也在期待中


  • 註冊用戶

    @yea

    感謝你的解答.

    趕緊來試試看


  • 註冊用戶

    @babto

    謝謝你提供針對單筆記錄的用法

    單筆的上下筆記錄也蠻常用到的.

    先收藏,


  • 註冊用戶

    單筆記錄比較常使用的方式是透過id判斷來取得上下筆資料
    例如:
    db.timelog.insert([{'_id':1},{'_id':2},{'_id':3},{'_id':4},{'_id':5}]);
    上一筆:
    db.timelog.find({'_id':{ '$lt': 2}}).sort({_id: -1}).limit(1);
    下一筆:
    db.timelog.find({'_id':{'$gt':2}}).sort({_id: 1}).limit(1);


登录后回复
 

与 萌阔论坛 的连接断开,我们正在尝试重连,请耐心等待