node.js - 连接表上的查询

标签 node.js sequelize.js

我正在尝试使用 sequelize 查询连接表: 这是模型:

db.client.belongsToMany(db.user, {
  through: db.clientUser,
   onDelete: 'cascade',
});
db.user.belongsToMany(db.client, {
   through: db.clientUser,
 });

这就是我想要做的:

db.user.findAll({
      where: {
        group_id: 1,
      },
      include: [{
        model: db.clientUser,
        where: {
          is_manager: 1,
        }
      }],
      raw: true,
    })

但是我收到以下错误:client_user 未关联到用户!

知道这个问题的原因是什么吗?

最佳答案

您从 user through clientUser 声明了 client 之间的关系。虽然迂腐,但它的提示在技术上是正确的:clientclientUser 之间没有明确声明的关系。也不应该:您的 belongsToMany 关系应该解决这个问题。可以调整您的查询以处理此关系。

注意:我不知道 group_id 和 is_manager 在什么表中。它们可能需要重新洗牌。

db.user.findAll({
  where: {
    group_id: 1,
  },
  include: [{
    model: db.client,
    through: {
      where: {
        is_manager: 1, // Assuming clientUser.is_manager?
      },
    }],
  raw: true,
})

关于node.js - 连接表上的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47404648/

相关文章:

node.js - 如何知道读取文件时使用什么编码?

node.js - 卸载 ExpressJS 3.5.2 仍然留下某种指针

node.js - Sequelize.js afterFind 参数说明

node.js - 在 Sequelize 中加载关联

javascript - 使用sequelize 获取字段中具有唯一值的所有行

postgresql - 如何使用 Sequelize.js 显示语句的执行计划

node.js - 如果我在 Node.js 服务器中使用 socket.setKeepAlive 会发生什么

node.js - 使用 websockets 手动连接到 socket.io 1.x,容量测试

jquery - 将多行文本与元素分开

Node.js Sequelize 依赖问题