如何有条件地调用 "where" 子句?棱镜
How to call "where" clause conditionally? prisma
如何在prisma中有条件地过滤记录?例如,我有变量 sortByYear
可以包含 undefined
或 integer
.
我只想问下有没有办法重构下面的实现。我试过查看他们的 documentation,但找不到。
let result = [];
if (sortByYear) {
result = await prisma.project.findMany({
where: { provider_id: 50 }
})
} else {
result = await prisma.project.findMany()
}
在 laravel 中,我们可以通过使用 when
子句重构它,该子句在执行查询之前首先检查变量。 laravel when-clause
您可以结合使用扩展语法运算和三元运算来完成此操作:
const result = await prisma.project.findMany({
where: {
...(sortByYear ? { provider_id: 50 } : {}),
},
});
传播语法:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax
条件三元:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator
如何在prisma中有条件地过滤记录?例如,我有变量 sortByYear
可以包含 undefined
或 integer
.
我只想问下有没有办法重构下面的实现。我试过查看他们的 documentation,但找不到。
let result = [];
if (sortByYear) {
result = await prisma.project.findMany({
where: { provider_id: 50 }
})
} else {
result = await prisma.project.findMany()
}
在 laravel 中,我们可以通过使用 when
子句重构它,该子句在执行查询之前首先检查变量。 laravel when-clause
您可以结合使用扩展语法运算和三元运算来完成此操作:
const result = await prisma.project.findMany({
where: {
...(sortByYear ? { provider_id: 50 } : {}),
},
});
传播语法:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax
条件三元:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator