Mongo 连接器目前不支持级联删除
The Mongo connector currently does not support Cascading Deletes
我正在使用 Prisma,我想支持 CASCADE
删除,但是尽管我已经完成了文档中提到的所有操作,但我仍然无法正常工作
这是我在尝试部署 Prisma 时遇到的错误
Errors:
Restaurant
✖ The Mongo connector currently does not support Cascading Deletes, but the field `foods` defines cascade behavior. Please remove the onDelete argument.}
Here is the code
type Restaurant {
id: ID! @id
name: String!
foods: [Food!]! @relation(onDelete: CASCADE, name: "FoodToRestaurant", link: INLINE)
}
type Food {
id: ID! @id
name: String!
desc: String
price: Float!
category: Category!
restaurant: Restaurant! @relation(name: "FoodToRestaurant", onDelete: SET_NULL)
}
我预计当餐厅被删除时,它所有的食物也应该被删除
我用 Prisma PostgreSQL 删除了 CASCADE,但现在我想为这个应用程序使用 MongoDB
目前mongodbprisma不支持级联删除。如果您的模式中有它,请将其删除。
因为不可能,您应该手动管理它。
意味着您应该递归地删除所有相关实体。
例如,如果它是您的数据库架构:
问题 -> 评论 -> 评分
如果要删除问题,则应删除与该问题相关的所有评论,如果要删除评论,则应删除分配给该评论的所有评分。所以你需要一些递归函数来删除这些实体。
function deleteQuestion(questionId) {
for each comment related to questionID
deleteComment(commentId)
delete(questionId)
}
function deleteComment(commentId) {
for each rate related to commentId
deleteRate(rateId)
delete(commentId)
}
function deleteRate(rateId) {
delete(rateId)
}
我正在使用 Prisma,我想支持 CASCADE
删除,但是尽管我已经完成了文档中提到的所有操作,但我仍然无法正常工作
这是我在尝试部署 Prisma 时遇到的错误
Errors:
Restaurant
✖ The Mongo connector currently does not support Cascading Deletes, but the field `foods` defines cascade behavior. Please remove the onDelete argument.}
Here is the code
type Restaurant {
id: ID! @id
name: String!
foods: [Food!]! @relation(onDelete: CASCADE, name: "FoodToRestaurant", link: INLINE)
}
type Food {
id: ID! @id
name: String!
desc: String
price: Float!
category: Category!
restaurant: Restaurant! @relation(name: "FoodToRestaurant", onDelete: SET_NULL)
}
我预计当餐厅被删除时,它所有的食物也应该被删除
我用 Prisma PostgreSQL 删除了 CASCADE,但现在我想为这个应用程序使用 MongoDB
目前mongodbprisma不支持级联删除。如果您的模式中有它,请将其删除。
因为不可能,您应该手动管理它。
意味着您应该递归地删除所有相关实体。
例如,如果它是您的数据库架构:
问题 -> 评论 -> 评分
如果要删除问题,则应删除与该问题相关的所有评论,如果要删除评论,则应删除分配给该评论的所有评分。所以你需要一些递归函数来删除这些实体。
function deleteQuestion(questionId) {
for each comment related to questionID
deleteComment(commentId)
delete(questionId)
}
function deleteComment(commentId) {
for each rate related to commentId
deleteRate(rateId)
delete(commentId)
}
function deleteRate(rateId) {
delete(rateId)
}