问题描述
我的架构如下:
isTrue
我正在编写一个变异函数,该函数采用false
对象的数组。这些model User {
id Int @default(autoincrement()) @id
createdAt DateTime @default(Now())
email String @unique
role String @default("user")
sessions Session[]
profile Profile?
goalBoard GoalBoard[]
team Team[]
...
}
model GoalBoard {
id Int @default(autoincrement()) @id
active Boolean // Whether an active goalBoard
owner User @relation(fields: [ownerId],references: [id])
ownerId Int
createdAt DateTime @default(Now())
goal Goal[]
...
}
model Goal {
id Int @default(autoincrement()) @id
status String
createdAt DateTime @default(Now())
owner User @relation(fields: [ownerId],references: [id])
ownerId Int
goalBoard GoalBoard @relation(fields: [goalBoardId],references: [id])
goalBoardId Int
content String
goalFrequency GoalFrequency[]
task Task[]
}
model Task {
id Int @default(autoincrement()) @id
status String // incomplete,complete
createdAt DateTime @default(Now())
content String
goal Goal @relation(fields: [goalId],references: [id])
goalId Int
}
对象具有goal
对象的嵌套数组。看起来像这样:
goal
我如何使用prisma2处理这种结构?需要多次写入和task
逻辑。
这是我在Db中写入插入的失败尝试。只需一个插入和连接即可进行测试。
const goals = [
{
title: 'string',...
tasks: [
{
deadline: "2020/10/10",...
}
]
},...
]
解决方法
您的本示例架构没有使用此创建的问题
import { PrismaClient } from '@prisma/client';
const prisma = new PrismaClient();
async function main() {
prisma.$connect();
const user = await prisma.user.create({
data: {
email: 'a@ahmedelywa.com',},});
const result = await prisma.goal.create({
data: {
content: 'test content',status: 'any',owner: {
connect: {
id: user.id,goalBoard: {
create: {
active: true,owner: {
connect: {
id: user.id,include: {
owner: true,goalBoard: true,});
console.log(result);
}
main();
结果
{
id: 1,createdAt: 2020-10-04T10:53:40.956Z,ownerId: 1,goalBoardId: 1,content: 'test content',owner: {
id: 1,createdAt: 2020-10-04T10:53:40.949Z,email: 'a@ahmedelywa.com',role: 'user'
},goalBoard: {
id: 1,active: true,createdAt: 2020-10-04T10:53:40.956Z
}
}
也许您的其他隐藏架构内容存在问题