如何在一个 parent 上找到符合条件的 (Adonis Lucid Many-to-Many) children 条记录?

How does one find existence of (Adonis Lucid Many-to-Many) children records on one parent that meet a criteria?

我试图在单个 parent 角色 (many-to-many) 上找到某些权限的存在。

const roles = await Role
  .query()
  .preload('permissions')

this.role = roles.find(role => role.id === someid)

const exists = this.role.permissions.some(permission => permission.name === 'something')

这是目前的解决方案,似乎不是最优的。 有没有办法在不加载所有角色和权限并在 Javascript 中循环遍历它们的情况下执行此操作? 非常感谢

尝试使用 whereHas (https://docs.adonisjs.com/reference/orm/query-builder#wherehas):

await Role.query()
  .where('id', someid)
  .whereHas('permissions', q => {
    q.where('name', 'something')
  })