如何在 TypeORM 中查询数组

2023-11-22

我想创建用户权限管理。我将 TypeORM 与 PostgreSQL 结合使用。这是用户实体内权限的列定义:

@Column({
  type: 'text',
  array: true
})
permissions: UserPermission[] = [];

这是UserPermission enum:

export enum UserPermission {
  APP_USER = 'APP_USER',
  USER_ADMIN = 'USER_ADMIN',
  SUPERADMIN = 'SUPERADMIN'
}

我想找到一位拥有以下功能的用户'SUPERADMIN'许可,但我无法在文档/github问题中找到解释如何执行此操作的正确位置。我已经花了一个多小时在这上面,我认为这是一个简单的任务。

是否有类似“包含”的内容来检查权限数组是否包含特定元素和/或包含多个元素?

const user = await this.userRepository.findOne({
  where: {
    permissions: Includes('SUPERADMIN')
  }
});

如果有人能指出我正确的文档页面,我将非常感激:)


Edit:

以下对我有用,但我认为它还不是最佳的:

@Column('simple-json')
permissions: string[];
let user = await this.userRepository.createQueryBuilder('user')
  .where('user.permissions like :permissions', { permissions: `%"${UserPermission.SUPERADMIN}"%` })
  .getOne();

正如 Mykhalio 提到的,您可以使用 PostgreSQL 数组函数来实现这一目的。

添加更多指针。

  1. 如果要检查同时具有 USER_ADMIN 和 SUPER_ADMIN 权限的用户。
.where('user.permissions @> :permissions', { permissions:['USER_ADMIN', 'SUPER_ADMIN']})
  1. 如果您想检查具有 USER_ADMIN 或 SUPER_ADMIN 权限的用户。
.where('user.permissions && :permissions', { permissions: ['USER_ADMIN', 'SUPER_ADMIN']})
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 TypeORM 中查询数组 的相关文章

随机推荐

  • MRJob 的多个输入

    我正在尝试学习使用 Yelp 的 Python API 进行 MapReduce MRJob 他们的简单单词计数器示例很有意义 但我很好奇如何处理涉及多个输入的应用程序 例如 不是简单地计算文档中的单词数 而是将向量乘以矩阵 我想出了这个解
  • GKE Autopilot 上的 Prometheus?

    目前在我的kubernetes nodesPrometheus 中的工作 端点 api v1 nodes gk3
  • 检查行数据是否已更改

    我的目标 如果行已更新或新行已插入 则将数据从一个表移动到另一个表 我有一个表 我需要其中的某些字段 我需要知道该行是否已更新或插入 源表没有任何时间戳字段 我使用的是MSSQL2008 数据来自客户端 他们控制表和复制 我以为我已经用新的
  • 我们如何禁用 VS 2010 Intellisense

    我的 Visual Studio 2010 大多数时候都太慢了 所以我决定禁用vs2010 Intellisense 谁能帮我 对于 C C 工具 gt 选项 gt 文本编辑器 gt C C gt 高级 gt 禁用 IntelliSense
  • 列特征必须是 org.apache.spark.ml.linalg.VectorUDT 类型

    我想在 pyspark spark 2 1 1 中运行此代码 from pyspark ml feature import PCA bankPCA PCA k 3 inputCol features outputCol pcaFeature
  • jQuery UI 选项卡 - 如何获取当前选定的选项卡索引

    我知道这个具体问题已经之前问过 但我没有得到任何结果使用bind 事件于jQuery UI Tabs插入 我只需要index新选择的选项卡的 以便在单击该选项卡时执行操作 bind 允许我挂钩选择事件 但我获取当前选定选项卡的常用方法不起作
  • python scipy.stats.powerlaw 负指数

    我想为 scipy stats powerlaw 例程提供一个负指数 例如a 1 5 为了抽取随机样本 powerlaw pdf x a a x a 1 from scipy stats import powerlaw R powerlaw
  • Matlab实时绘图

    我是 matlab 新手 我想实时绘制一些数据 我的方法如下 figure hold on for i 1 1000 plot i i drawnow end 但其性能较差 我还在 stackoverflow 上找到了一个建议 https
  • 我可以在canvas元素中绘制表格吗?

    有没有什么方法 插件 工作解决方案等 来绘制HTML table into a
  • 使用 Objective-C 对字符串进行 URLEncoding

    我正在尝试对字符串进行 URL 编码以形成来自 Objective C 的 GET 请求 NSString params Decoded data foo bar baz NSRunAlertPanel Error params urlEn
  • 什么是应用程序加载器中的托管内容包?

    我想为我的应用程序启用应用程序内购买 购买类型是非消耗品我用 Apple 标记了主机内容 当我想通过 Apple 托管内容时 我需要提供托管内容包 我无法找到此内容包中应包含哪些内容的更多信息 但它不能大于 2GB 并且扩展名应该是 pkg
  • Java中字符串到二进制输出

    我想从字符串中获取二进制 011001 但我得到了 B addbf1 必须有一个简单的转换来做到这一点 但我没有看到它 public static String toBin String info byte infoBin null try
  • 可以在同一台机器上安装两个不同版本的Android Studio吗?

    我只有一台机器 Mac OS 10 9 5 我目前拥有 Android Studio 的金丝雀版本 但遇到了一些错误 所以我也想安装稳定版的Android Studio 有人这样做过吗 在同一台机器上安装多个版本是否有问题 是的 但您必须更
  • 如何为 binned_statistic 制作用户定义的函数

    我正在使用 scipy stats 包沿轴进行统计 但我在使用百分位统计时遇到问题binned statistic 我概括了下面的代码 我尝试在一系列 x bin 中获取具有 x y 值的数据集的第 10 个百分位数 但它失败了 我当然可以
  • Java 7 Update 25 的 rmi 线程中的 AppContext 为 null

    我们最近从 Update 21 更新到 Java 7 Update 25 并且现在在从 rmi 线程调用 SwingUtilities isEventDispatchThread 时遇到空指针异常 因为 AppContext getAppC
  • 7 段显示 OCR

    我正在使用 Tesseract 一个 OCR 库 构建一个 iOS 应用程序 拍照并在其上运行 OCR 并且它可以很好地处理书写良好的数字和字符 使用常用字体 我遇到的问题是 如果我在 7 段显示器上尝试 它会给出非常非常糟糕的结果 所以我
  • zend 文本元素中的占位符文本

    我正在开发一个 Zend 表单应用程序 其中我的表单包含带有水印的文本框 我们可以通过以下代码在 HTML 中实现这一点
  • 如何在wpf文本块中显示一行文本

    我是 wpf 的新手 我想在 wpf 文本块中的一行中显示文本 例如
  • .net 的替代 Oracle 驱动程序

    我必须用 C 开发一个工具来从 Oracle DB 检索一些数据 由于我们的 IT 支持人员在安装 Oracle 客户端时遇到了一些问题 因此我希望能够在不安装客户端的情况下连接到数据库 这个想法是只安装 也许注册 一个额外的库与应用程序一
  • 如何在 TypeORM 中查询数组

    我想创建用户权限管理 我将 TypeORM 与 PostgreSQL 结合使用 这是用户实体内权限的列定义 Column type text array true permissions UserPermission 这是UserPermi