在Prisma ORM的MongoDB Schema中使用Integer类型遇问题
解决Prisma MongoDB模型类型报错问题
问题原因
Prisma针对MongoDB的字段类型不能直接使用Integer、Date这类SQL风格的内置类型,因为MongoDB的BSON类型系统与关系型数据库不同,必须通过@db.xxx注解显式指定对应的MongoDB原生类型。
正确类型映射示例
修改你的Event模型,使用Prisma兼容的内置类型配合MongoDB专属注解:
generator client { provider = "prisma-client-js" } datasource db { provider = "mongodb" url = env("DATABASE_URL") } model Event { id String @id @default(auto()) @map("_id") @db.ObjectId EventId Int @unique @db.Int32 // 映射MongoDB Int32类型,如需长整数用@db.Long createdAt DateTime @db.DateTime // 映射MongoDB Date类型 metadata Json @db.Object // 映射MongoDB BSON对象类型 }
关键类型对应说明
- 整数类型:用Prisma内置
Int,配合@db.Int32(32位整数)或@db.Long(64位长整数) - 日期类型:用Prisma内置
DateTime,配合@db.DateTime映射MongoDB原生Date - 对象类型:用Prisma内置
Json,配合@db.Object映射MongoDB的BSON对象
执行npx prisma generate即可正常生成客户端代码。
内容的提问来源于stack exchange,提问作者nicb
相关产品推荐
相关产品推荐

