我正在使用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.}
这是代码
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
答案 0 :(得分:0)
当前mongodb pyramida不支持级联删除。如果您的架构中有此文件,请删除它。
答案 1 :(得分:0)
因为这是不可能的,你应该手动管理它。
意味着您应该递归删除所有相关实体。
例如,如果它是您的数据库架构:
问题 -> 评论 -> 评分
如果您想删除一个问题,您应该删除与该问题相关的所有评论,如果您想删除一个评论,您应该删除分配给该评论的所有评分。所以你需要一些递归函数来删除这些实体。
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)
}