使用Prisma搜索字符串时遇'mode不存在于StringFilter'错误求助
Prisma查询中
mode字段报错的原因及解决办法 出现这个错误的核心原因是Prisma版本差异:
- Prisma在v4.10.0版本才正式引入
StringFilter.mode字段,用来统一设置字符串查询的大小写敏感模式。 - 如果你当前使用的Prisma版本低于v4.10.0,
StringFilter类型里根本没有mode这个属性,自然会抛出类型错误。
解决办法
有两种方案可选:
- 升级Prisma版本
把项目中的prisma和@prisma/client依赖升级到v4.10.0及以上,之后就可以正常使用mode参数:
prismadb.post.findMany({ where: { title: { contains: "你的搜索关键词", mode: "insensitive" } } })
- 使用旧版本兼容写法
不想升级的话,直接用旧版本提供的containsInsensitive操作符实现不区分大小写的包含查询:
prismadb.post.findMany({ where: { title: { containsInsensitive: "你的搜索关键词" } } })
你可以查看项目package.json中的prisma和@prisma/client版本号,确认是否符合上述版本要求。
内容的提问来源于stack exchange,提问作者Umair
相关产品推荐
相关产品推荐

