【问题标题】:Sequelize: Select all where value is the highestSequelize:选择所有值最高的地方
【发布时间】:2022-02-08 21:50:29
【问题描述】:

用户角色之间存在多对多关系。由于每个用户可以拥有多个角色,我在角色表中创建了一个字段,称为"clearance",它可以是 0 到 3,这是一个表示角色在层次结构中的高度的数字。 我的服务器中有一点需要让用户只包含具有最高权限的角色。我已经尝试在 Sequelize 的 whereincludethrough 对象中多次使用 sequelize.fn('MAX', sequelize.col('clearance"),但无济于事。我不是 mysql 和 Sequelize 方面的专家,但它是我发现的最好的 js 模块,可以作为我的 DB 的 ORM。

【问题讨论】:

  • 请提供足够的代码,以便其他人更好地理解或重现问题。

标签: node.js database sequelize.js roles


【解决方案1】:

您可以尝试这样的事情(不能保证,但看起来非常接近您想要实现的目标):

const users = await Users.findAll({
  include: [{
    model: Roles,
    limit: 1,
    order: ['clearance', 'DESC']
  }]
})

【讨论】:

  • 该数组语法不起作用。它给了我这个错误Error: Only HasMany associations support include.separate 两个模型都有belongsToMany 相互关系
  • 通过添加{}修复
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-02
  • 2015-07-15
  • 1970-01-01
相关资源
最近更新 更多