字段和类型
本节介绍您可以与 Prisma Client 一起使用的各种特殊字段和类型。
使用 Decimal
Decimal
字段由 Decimal.js
库 表示。以下示例演示如何导入和使用 Prisma.Decimal
import { PrismaClient, Prisma } from '@prisma/client'
const newTypes = await prisma.sample.create({
data: {
cost: new Prisma.Decimal(24.454545),
},
})
您还可以执行算术运算
import { PrismaClient, Prisma } from '@prisma/client'
const newTypes = await prisma.sample.create({
data: {
cost: new Prisma.Decimal(24.454545).plus(1),
},
})
Prisma.Decimal
使用 Decimal.js,请参阅 Decimal.js 文档 以了解更多信息。
警告
目前在 MongoDB 中 不支持 使用 Decimal
字段。
使用 BigInt
概述
BigInt
字段由 BigInt
类型(需要 Node.js 10.4.0+)表示。以下示例演示如何使用 BigInt
类型
import { PrismaClient, Prisma } from '@prisma/client'
const newTypes = await prisma.sample.create({
data: {
revenue: BigInt(534543543534),
},
})
序列化 BigInt
Prisma Client 将记录作为纯 JavaScript 对象返回。如果您尝试对包含 BigInt
字段的对象使用 JSON.stringify
,您将看到以下错误
Do not know how to serialize a BigInt
要解决此问题,请使用 JSON.stringify
的自定义实现
JSON.stringify(
this,
(key, value) => (typeof value === 'bigint' ? value.toString() : value) // return everything else unchanged
)
使用 Bytes
Bytes
字段由 Uint8Array
类型表示。以下示例演示如何使用 Uint8Array
类型
import { PrismaClient, Prisma } from '@prisma/client'
const newTypes = await prisma.sample.create({
data: {
myField: new Uint8Array([1, 2, 3, 4]),
},
})
请注意,在 **Prisma v6 之前**,Bytes
由 Buffer
类型表示
import { PrismaClient, Prisma } from '@prisma/client'
const newTypes = await prisma.sample.create({
data: {
myField: Buffer.from([1, 2, 3, 4]),
},
})
在 v6 升级指南 中了解更多信息。
使用 DateTime
注意
在创建具有 DateTime
类型的字段的记录时,Prisma Client 接受作为 Date
对象的值,这些值符合 ISO 8601 标准。
考虑以下模式
model User {
id Int @id @default(autoincrement())
birthDate DateTime?
}
以下是一些创建新记录的示例
1998 年 1 月 1 日;00 时 00 分 000 毫秒
await prisma.user.create({
data: {
birthDate: new Date('1998')
}
})
1998 年 12 月 1 日;00 时 00 分 000 毫秒
await prisma.user.create({
data: {
birthDate: new Date('1998-12')
}
})
1998 年 12 月 24 日;00 时 00 分 000 毫秒
await prisma.user.create({
data: {
birthDate: new Date('1998-12-24')
}
})
1998 年 12 月 24 日;22 时 33 分 444 毫秒
await prisma.user.create({
data: {
birthDate: new Date('1998-12-24T06:22:33.444Z')
}
})
使用 Json
请参阅:使用 Json
字段
使用标量列表/标量数组
请参阅:使用标量列表/数组
使用复合 ID 和复合唯一约束
请参阅:使用复合 ID 和复合唯一约束