跳至主要内容

字段和类型

本节介绍您可以与 Prisma 客户端一起使用的各种特殊字段和类型。

使用 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),
},
})

info

目前在 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 客户端将记录返回为纯 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 字段由 Buffer 类型表示。以下示例演示了如何使用 Buffer 类型

import { PrismaClient, Prisma } from '@prisma/client'

const newTypes = await prisma.sample.create({
data: {
myField: Buffer.from([1, 2, 3, 4]),
},
})

使用 Json

参见:使用 Json 字段

使用标量列表/标量数组

参见:使用标量列表/数组

使用复合 ID 和复合唯一约束

参见:使用复合 ID 和复合唯一约束