【发布时间】:2021-10-21 08:28:26
【问题描述】:
我有一个 API 端点需要获取 30 个项目的数据,它需要检查两个不同字段中的值以返回正确的字段。我正在使用 Prisma ORM。
在一个请求中,我得到一个对象数组,如下所示:
{
'6151': 12
},
其中key是part_num,value是color_id。我将键和值分成数组,并在循环中逐个查找每个元素:
const elements = [];
for (let i = 0; i < partNums.length; i++) {
const element = await prisma.elements.findFirst({
where: { AND: { part_num: partNums[i], color_id: colors[i] } },
});
elements.push(element);
}
它似乎工作正常,但我读到对数据库进行多次查询是一种不好的做法,所以我的问题是:
有没有办法在一个查询中获得相同的结果?
我唯一的想法是仅通过其中一个字段获取所有元素,然后过滤掉我不需要的那些。但是,这首先需要从 db 中获取更多元素,并且过滤也需要一些时间。
【问题讨论】:
标签: javascript mysql prisma