You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Prisma查询MongoDB嵌套对象时出现无效调用报错求助

Prisma查询MongoDB嵌套对象报错解决办法

问题场景

以下是对应的Prisma Schema及查询代码:

model Member {
  id                 String               @id @default(auto()) @map("_id") @db.ObjectId
  bank    BankInfo
  @@map("members")
}

type BankInfo {
  bankNo   String
}

查询代码:

const member = await this.prisma.member.findFirst({
      where: { bank: { bankNo: 'test' } },
 });

执行时触发错误:Error: Invalid prisma.member.findFirst() invocation:

解决方法

Prisma操作MongoDB嵌套文档时,必须使用点符号语法指定嵌套字段,不能用嵌套对象的写法。修改后的查询代码如下:

写法一:直接匹配值

const member = await this.prisma.member.findFirst({
  where: {
    'bank.bankNo': 'test'
  },
});

写法二:使用equals操作符(语义更明确)

const member = await this.prisma.member.findFirst({
  where: {
    'bank.bankNo': { equals: 'test' }
  },
});

原因说明

MongoDB本身查询嵌套文档的语法就是bank.bankNo这种点路径形式,Prisma对MongoDB的适配遵循这一规则,和关系型数据库的嵌套对象查询写法不同。建议使用最新稳定版Prisma以确保语法支持。

内容的提问来源于stack exchange,提问作者user8663822

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 08:56:08