Mongodb Prisma 2 多对多关系是单向的
Mongodb Prisma 2 many to many relation is working 1 sided
我的关系数据有一个小问题table,这是我的模型,问题在下面。
model User {
id String @id @default(dbgenerated()) @map("_id") @db.ObjectId
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
email String @unique
firstName String
...
rsvpedSessions Session[] @relation("Rsvped", fields: [rsvpedSessionId])
rsvpedSessionId String[] @db.Array(ObjectId)
notRespondedSessions Session[] @relation("notResponded", fields: [notRespondedSessionId])
notRespondedSessionId String[] @db.Array(ObjectId)
declinedSessions Session[] @relation("Declined", fields: [declinedSessionId])
declinedSessionId String[] @db.Array(ObjectId)
model Session {
id String @id @default(dbgenerated()) @map("_id") @db.ObjectId
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
title String
...
rsvpedUsers User[] @relation("Rsvped", fields: [rsvpedUserId])
rsvpedUserId String[] @db.Array(ObjectId)
notRespondedUsers User[] @relation("notResponded", fields: [notRespondedUserId])
notRespondedUserId String[] @db.Array(ObjectId)
declinedUsers User[] @relation("Declined", fields: [declinedUserId])
declinedUserId String[] @db.Array(ObjectId)
当我通过将用户添加到 notResponded 创建会话时。我可以在 notResponded 数组中看到用户,但是在用户上,我无法在 notRespondedSessions 下获取会话。它只是 link 向用户发送会话,但不 link 向用户发送会话。
我用
创建会话
return await prisma.session.create({
data: {
...args,
notRespondedUserId: args.userID,
},
});
还有一个细节,当我尝试连接 notRespondedUsers 时,它说连接不是一个有效的参数。
你知道可能是什么原因吗?
如果您想创建一个会话并将其连接到现有的 user
记录,您应该将 connect
API 与相关字段一起使用(notRespondedUsers
) 而不是尝试直接将值分配给 notRespondedUserId
.
我认为这是您要查找的查询:
await prisma.session.create({
data: {
...args
notRespondedUsers: {
connect: {
id: args.userID // if there is more than one user, you can also pass an array of { id: string} objects to connect
}
}
},
});
您可以在 Prisma docs.
中找到 connect
的语法和详细信息
我的关系数据有一个小问题table,这是我的模型,问题在下面。
model User {
id String @id @default(dbgenerated()) @map("_id") @db.ObjectId
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
email String @unique
firstName String
...
rsvpedSessions Session[] @relation("Rsvped", fields: [rsvpedSessionId])
rsvpedSessionId String[] @db.Array(ObjectId)
notRespondedSessions Session[] @relation("notResponded", fields: [notRespondedSessionId])
notRespondedSessionId String[] @db.Array(ObjectId)
declinedSessions Session[] @relation("Declined", fields: [declinedSessionId])
declinedSessionId String[] @db.Array(ObjectId)
model Session {
id String @id @default(dbgenerated()) @map("_id") @db.ObjectId
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
title String
...
rsvpedUsers User[] @relation("Rsvped", fields: [rsvpedUserId])
rsvpedUserId String[] @db.Array(ObjectId)
notRespondedUsers User[] @relation("notResponded", fields: [notRespondedUserId])
notRespondedUserId String[] @db.Array(ObjectId)
declinedUsers User[] @relation("Declined", fields: [declinedUserId])
declinedUserId String[] @db.Array(ObjectId)
当我通过将用户添加到 notResponded 创建会话时。我可以在 notResponded 数组中看到用户,但是在用户上,我无法在 notRespondedSessions 下获取会话。它只是 link 向用户发送会话,但不 link 向用户发送会话。
我用
创建会话return await prisma.session.create({
data: {
...args,
notRespondedUserId: args.userID,
},
});
还有一个细节,当我尝试连接 notRespondedUsers 时,它说连接不是一个有效的参数。
你知道可能是什么原因吗?
如果您想创建一个会话并将其连接到现有的 user
记录,您应该将 connect
API 与相关字段一起使用(notRespondedUsers
) 而不是尝试直接将值分配给 notRespondedUserId
.
我认为这是您要查找的查询:
await prisma.session.create({
data: {
...args
notRespondedUsers: {
connect: {
id: args.userID // if there is more than one user, you can also pass an array of { id: string} objects to connect
}
}
},
});
您可以在 Prisma docs.
中找到connect
的语法和详细信息