我的postgres数据库表的列位置为字符varying[]
。在我的表格的nestjs实体中,我在location列中有以下内容-
@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解决方案给我以下错误-
'找不到数据类型字符变化的数组类型[]'
这可能是什么解决方案?我会喜欢typeorm解决方案,因为我将原始查询的执行作为最后的选择。
预先感谢
答案 0 :(得分:0)
您可以尝试以下方法:
await this.blogsRepo.find({
where: `${body.locations} = ANY (location)`,
});
答案 1 :(得分:0)
根据typeorm文档,没有办法/内置与@>
运算符等效的typeorm运算符。
因此,实现我想要的唯一方法是生成一个完整的查询,然后使用Repository.query()
方法执行该查询。
到目前为止似乎可以正常工作!