2017-12-10 23:18
error sequelize

Sequelize: FindAndCountAll の limit がエラー

現象

  • Sequelize で FindAndCountAll する時、以下の条件下だとエラーになる。
    • n:m のリレーションモデルを include するとき
    • これとか
      db.projects.findAndCountAll({
        include: [{
            model: db.users,  // projects と users は n:m
        }],
        limit: per_page,
        offset: per_page * (page - 1)
      })
  • ちなみにDBはPostgreSQL

対策

  • ググると結構出てきた。
  • subQuery: false でサブクエリを使うなとのこと。
    db.projects.findAndCountAll({
      subQuery: false,
      include: [{
          model: db.users,  // projects と users は n:m
      }],
      limit: per_page,
      offset: per_page * (page - 1)
    })
  • つまりどういうこと?会社のバックエンドエンジニア兼インフラエンジニアにでも聞いてみようと思う。