Prisma:如何找到与 id 列表匹配的所有元素?

Posted

技术标签:

【中文标题】Prisma:如何找到与 id 列表匹配的所有元素?【英文标题】:Prisma : how can I find all elements that match an id list? 【发布时间】: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?

【问题讨论】:

【参考方案1】:

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

例子:

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

更多详情,请访问prisma client reference。

【讨论】:

以上是关于Prisma:如何找到与 id 列表匹配的所有元素?的主要内容,如果未能解决你的问题,请参考以下文章

NestJS-Prisma,如何编写与 prisma 一对多类型匹配的 DTO

Python:如何在列表中找到与元素名称的一部分匹配的元素

如何在 prisma 中使用 findUnique 和 post id 和 prodCode 来查找帖子

如何在 Mongoose 中找到与数组字段的最后一个元素与给定查询值匹配的所有文档?

如何在 prisma-binding npm 中获取总匹配记录数

如何选择具有类的所有元素,除了具有与模式匹配的id的祖先的元素?