Prisma:如何找到与 id 列表匹配的所有元素?
Prisma : how can I find all elements that match an id list?
我正在将 Prisma 与 NextJs 结合使用。
在我的 API 中,我向后端发送了一个数字列表,这些数字对应于我数据库中对象的 ID。
例如,如果我收到列表 [1, 2, 12]
,我想 return id 为 1、2 或 12 的对象
这是一个更复杂的查询的一部分(排序/计数/...),但我在第一步阻止是获取元素列表
到目前为止我有这个:
import { PrismaClient, Prisma } from '@prisma/client'
const prisma = new PrismaClient()
export default async function handler(req, res) {
if (req.method !== 'POST') {
res.status(400).send({ message: 'Only POST requests allowed for this route' })
} else {
const { signes_id } = req.query
const signes_array = signes_id.split(",").map(function(item) {
return parseInt(item)
})
console.log(signes_array)
const ret = await prisma.signe.findMany({
where: {
id: Number(signes_array),
}
})
res.status(200).send(ret)
}
}
这不起作用,因为 Number
需要一个 int,而不是一个 int 数组
如何编写查询,例如 return所需的对象数组?
我该如何处理不匹配的 ID?
可以使用in
运算符在findMany
.
中查询多个id
示例:
const ret = await prisma.signe.findMany({
where: {
id: { in: [1, 2, 12] },
}
})
prisma client reference 中提供了更多详细信息。
我正在将 Prisma 与 NextJs 结合使用。
在我的 API 中,我向后端发送了一个数字列表,这些数字对应于我数据库中对象的 ID。
例如,如果我收到列表 [1, 2, 12]
,我想 return id 为 1、2 或 12 的对象
这是一个更复杂的查询的一部分(排序/计数/...),但我在第一步阻止是获取元素列表
到目前为止我有这个:
import { PrismaClient, Prisma } from '@prisma/client'
const prisma = new PrismaClient()
export default async function handler(req, res) {
if (req.method !== 'POST') {
res.status(400).send({ message: 'Only POST requests allowed for this route' })
} else {
const { signes_id } = req.query
const signes_array = signes_id.split(",").map(function(item) {
return parseInt(item)
})
console.log(signes_array)
const ret = await prisma.signe.findMany({
where: {
id: Number(signes_array),
}
})
res.status(200).send(ret)
}
}
这不起作用,因为 Number
需要一个 int,而不是一个 int 数组
如何编写查询,例如 return所需的对象数组?
我该如何处理不匹配的 ID?
可以使用in
运算符在findMany
.
id
示例:
const ret = await prisma.signe.findMany({
where: {
id: { in: [1, 2, 12] },
}
})
prisma client reference 中提供了更多详细信息。