javascript 如何在prisma模式中存储自定义对象?

bgibtngc  于 2022-12-17  发布在  Java
关注(0)|答案(2)|浏览(153)

我有一个模型叫“设置”

model Setup {
  id String @id @default(auto()) @map("_id") @db.ObjectId

  userId String? @unique @db.ObjectId
  user   User?   @relation(fields: [userId], references: [id])

  contract String[]
  legal    String[]

  createdAt DateTime @default(now())
  updatedAt DateTime @updatedAt
}

在这个模型中我想存储一个数组

const contractData = {
    id: '729a4839f3dapob44zt2b4b1',
    name: 'Example Name',
    text: 'Example Text'
}

因此,在我的上述模型“Setup”中,我希望存储contractData

prisma.setup.create({
    data: {
      userId: '6399bc74426f71f2da6e316c',
      personal: [],
      contract: contractData,
      legal: []
    }
  })

不幸的是,这不起作用。
我如何定义合同对象并将其存储在数据库中?

disho6za

disho6za1#

如果你想存储一个原始的JSON,请参考这个指南:https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields
为了能够存储一个原始JSON对象(或多个JSON对象作为一个数组),您将需要在Prisma中使用Json

model Setup {
  id String @id @default(auto()) @map("_id") @db.ObjectId

  userId String? @unique @db.ObjectId
  user   User?   @relation(fields: [userId], references: [id])

  contract Json[]
  legal    String[]

  createdAt DateTime @default(now())
  updatedAt DateTime @updatedAt
}

您的Prisma prisma.setup.create查询基本上是完全相同的。请注意,查询此JSON中的内容会比较棘手-我建议创建一个新模型,然后将其连接到Setup模型,但如果这不是一个选项,您仍然可以对contract字段执行一些有限的查询。
文件:https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filter-on-a-json-field

2wnc66cl

2wnc66cl2#

为了在合同字段中存储对象,您需要将合同字段的类型从String[]更改为Object[]。

model Setup {
  id String @id @default(auto()) @map("_id") @db.ObjectId

  userId String? @unique @db.ObjectId
  user   User?   @relation(fields: [userId], references: [id])

  contract Object[]
  legal    String[]

  createdAt DateTime @default(now())
  updatedAt DateTime @updatedAt
}

在合同字段中存储对象,如

prisma.setup.create({
  data: {
    userId: '6399bc74426f71f2da6e316c',
    personal: [],
    contract: [contractData],
    legal: []
  }
})

contract字段现在是一个数组,因此需要将对象作为数组的元素传递,如[contractData]

相关问题