[英]TypeORM "OR" operator
我在 TypeORM 文档和源代码中都找不到任何 OR 运算符的概念。 它是否支持它?
我正在尝试使用存储库执行基本搜索。
db.getRepository(MyModel).find({
name : "john",
lastName: "doe"
})
我知道这会生成一个 AND 操作,但我需要一个 OR 操作,所以 SQL 看起来像:
name='john' OR lastName='doe'
我是否被迫将查询生成器用于类似这样的基本内容?
db.getRepository(MyModel).find({
where: [
{ name: "john" },
{ lastName: "doe" }
]
})
将数组传递到where
我遇到了同样的问题,但我使用QueryBuilder解决了这个问题。
这将是一个例子。
return await getRepository(MyModel)
.createQueryBuilder()
.where("name = :name OR lastName = :lastName", {
name: "john",
lastName: "doe"
})
.getMany();
要在sub-clause
中使用OR
,我必须重复main-clause
userRepository.find({
where: [
{
firstName: 'Timber',
lastName: 'Saw',
project: {
name: 'TypeORM',
},
},
{
firstName: 'Timber',
lastName: 'Saw',
project: {
initials: 'TORM',
},
},
],
});
查找所有Timber Saw
具有name = "TypeORM"
或initials = "TORM"
的项目
您可以通过执行以下操作将“OR”子句与附加的“AND”结合起来。
db.getRepository(MyModel).find({
where: [
{ name: "john", lastName: "doe" },
{ age: 20 }
]
})
这将导致
select * from model where (name = "john" and lastname = "doe") OR age = 20
希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.