【问题标题】:Prisma : how can I find all elements that match an id list?Prisma:如何找到与 id 列表匹配的所有元素?
【发布时间】:2021-12-19 17:31:48
【问题描述】:

我正在将 Prisma 与 NextJs 一起使用。

在我的 API 中,我向后端发送一个数字列表,这些数字对应于我的数据库中的对象 ID。

例如,如果我收到列表 [1, 2, 12],我想返回 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 数组

如何编写查询,例如它返回所需的对象数组?
我该如何处理不匹配的 id?

【问题讨论】:

    标签: typescript next.js prisma


    【解决方案1】:

    您可以使用in 运算符在findMany 中通过多个id 进行查询。

    例子:

     const ret = await prisma.signe.findMany({
                where: {
                    id: { in: [1, 2, 12] },
                }
            })
    
    

    更多详情,请访问prisma client reference

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-31
      • 2016-04-28
      • 2013-12-06
      • 1970-01-01
      • 2021-10-23
      • 2010-09-24
      • 2017-10-23
      相关资源
      最近更新 更多