postgresql - 无法搜索 character varying[] 数组列

标签 postgresql nestjs typeorm

我的 postgres 数据库表有一个列位置是字符 varying[]。在我的表的 nestjs 实体中,我有以下位置列-

 @Column("character varying",{array:true})
    location: string[];

我想做的是搜索已传递参数作为位置的行。 这是给我适当结果的原始查询-

select * from blogs where language @> '{"Spanish","English"}'

在我的nestjs服务中,如何实现上面的查询呢? 我试过这样做-

return await this.blogsRepo.find({
  where: [
    {
      location: Any(body.locations)
    }
  ]
})

body.locations 是这样的数组-

body.locations = ["Spanish","English"]

上面的 typeorm 解决方案给了我以下错误-

'could not find array type for data type character varying[]'

可能的解决方案是什么?我会喜欢 typeorm 解决方案,因为我将原始查询执行作为最后的选择。

提前致谢

最佳答案

你可以试试这个:

await this.blogsRepo.find({
  where: `${body.locations} = ANY (location)`,
});

关于postgresql - 无法搜索 character varying[] 数组列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57408935/

相关文章:

node.js - tsc(TypeScript 编译器)和 ts-node 有什么区别?

mysql - 如何在 TypeORM 中处理 blob 列

sql - 如何在 TypeORM 查找选项中设置 IS NULL 条件?

postgresql - Postgresql 中分组 LIMIT 10

sql - 根据列索引获取随机行

nestjs - 在 NestJS 中测试护照

nestjs - 未找到连接 "default"- TypeORM、NestJS 和外部 NPM 包

python - Celery 在将我的查询集 obj 作为参数传递时引发错误

postgresql - 无法将 webapp 连接到 postgresql

node.js - 如何解决nestjs中的问题?