Rantiev
Rantiev

Reputation: 2263

How to compute field value during entry creation in Prisma (mongodb)?

I Use Prisma (v5) to manipulate my Mongodb in NestJS application and can't understand how to calculate fields during DB entry creation.

What i'm looking for is some kind of onCreate/beforeUpdate hook or anything else like that.

I have Order and want to calculate duration field based on order.services

Order prisma scheme (simplified):

model Order {
  id               String  @id @default(auto()) @map("_id") @db.ObjectId
  duration           Int
  services         String[] @db.ObjectId
}

Service prisma scheme (simplified):

model Service {
  id          String  @id @default(auto()) @map("_id") @db.ObjectId
  duration    Int
}

My order service create method looks like this:

async create(data: Prisma.OrderCreateInput): Promise<Order> {
    return this.prisma.order.create({
      data,
    })
  }

How to calculate order.duration during order creation/update?

The only idea I have is to fetch all the services before order is created and calculate it's value myself (in order create method, or even earlier on FE side)

But I'm looking for a better solution, as calculated field definition in Prisma scheme, or any oncreate/update hook etc...

Upvotes: 1

Views: 475

Answers (0)

Related Questions