NodeJS Prisma contains子句in where on字符串数组

lawou6xi  于 2023-11-17  发布在  Node.js
关注(0)|答案(2)|浏览(173)

我有以下请求有效负载,它作为过滤器的值传递

filters: {
    "name": ["Joh", "Matt"]
}

字符串
假设这是数据库中的数据

name
____
John
Jane


在Prisma中是否有一种方法可以根据数组中的任何过滤器值返回部分匹配(在本例中返回John
我一直在向下面的filter对象传递where子句,以获取单个filter值,但不确定当我有多个值/数组要检查时如何执行

name: {
   contains: filters.name,
   mode: "insensitive",
}

6ljaweal

6ljaweal1#

假设我们创建user表,其中name列有两行,如下所示:

const user = await prisma.user.createMany({
  data: [
    {
      name: "John"
    },
    {
      name: "Jane"
    }
  ]
});

字符串
要搜索多个值,您可以执行以下操作:

const getUser = await prisma.user.findMany({
  where:{
    OR: [
      {
        name: {
          contains: 'Joh',
        },
      },
      {
        name: {
          contains: 'Matt',
        },
      },
    ]
  },
})
console.log(getUser);


输出是

[ { id: 4, name: 'John' } ]


要了解有关搜索的更多信息,请查看prisma文档

sz81bmfz

sz81bmfz2#

试图找到答案,没有成功。下面是标量列表的方法:
https://www.prisma.io/docs/reference/api-reference/prisma-client-reference#scalar-list-methods
hasSome就是我要找的。看起来他们没有做任何方法来通过partial在列表中找到字符串。
这样的方法存在于Drizzle(arrayContains)或MongoDB中。

相关问题