Skip to main content

Fields & types

This section covers various special fields and types you can use with Prisma Client.

Working with Decimal

Decimal fields are represented by the Decimal.js library. The following example demonstrates how to import and use Prisma.Decimal:

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

const newTypes = await prisma.sample.create({
data: {
cost: new Prisma.Decimal(24.454545),
},
})

You can also perform arithmetic operations:

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

const newTypes = await prisma.sample.create({
data: {
cost: new Prisma.Decimal(24.454545).plus(1),
},
})

Prisma.Decimal uses Decimal.js, see Decimal.js docs to learn more.

warning

The use of the Decimal field is not currently supported in MongoDB.

Working with BigInt

BigInt fields are represented by the BigInt type (Node.js 10.4.0+ required). The following example demonstrates how to use the BigInt type:

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

const newTypes = await prisma.sample.create({
data: {
revenue: BigInt(534543543534),
},
})

Serializing BigInt

Prisma Client returns records as plain JavaScript objects. If you attempt to use JSON.stringify on an object that includes a BigInt field, you will see the following error:

Do not know how to serialize a BigInt

To work around this issue, use a customized implementation of JSON.stringify:

JSON.stringify(
this,
(key, value) => (typeof value === 'bigint' ? value.toString() : value) // return everything else unchanged
)

Working with Bytes

Bytes fields are represented by the Uint8Array type. The following example demonstrates how to use the Uint8Array type:

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

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

Note that before Prisma v6, Bytes were represented by the Buffer type:

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

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

Learn more in the upgrade guide to v6.

Working with Json

See: Working with Json fields

Working with scalar lists / scalar arrays

See: Working with scalar lists / arrays

Working with composite IDs and compound unique constraints

See: Working with composite IDs and compound unique constraints