如何使用Sequelize实现光标分页

时间:2017-05-14 12:48:15

标签: postgresql sequelize.js

我一直在寻找一种使用Sequelize和Postgres实现光标分页的方法,我找不到任何关于如何执行此操作的明确基本示例。我知道有一些npm软件包可以提供帮助,但似乎没有任何关于如何使用它们的明确说明。

3 个答案:

答案 0 :(得分:1)

我知道我来晚了,但是通过执行类似的操作,我能够实现光标分页。

const Sequelize = require('sequelize');
const Op = Sequelize.Op;

const getUsers = async (lastId, limit) => {
    const cursor = lastId || 0;
    return await User.findAll({
        limit: limit
        where: {
            id: {
                [Op.gt]: cursor
            }
        }
    });
}

答案 1 :(得分:0)

这是我前一段时间进行的分页查询的示例:

const findAll = (page, successCallback, errorCallback) =>  {
  sequelize.Event.findAll({
    limit: 20,
    offset: 20*page,
    where: {
      /* ... */
    },
    order: [
      /* ... */
    ]
  })
  .then(events => successCallback(events))
  .catch(err => errorCallback(err));
};

答案 2 :(得分:0)

有一个用于 sequelize-cursor-pagination 的包。