我想知道是否可以通过 API 或 graphQL 从嵌套对象中删除项目。我有一个集合类型(餐厅),内部有一个可重复的组件,称为“特许经营”(佛罗里达和纽约)。我只想删除其中之一(例如佛罗里达州)。那可能吗?
API获取
{
"data": [{
"id": 2,
"attributes": {
"name": "Italian Food",
"address": null,
"createdAt": "2023-09-16T19:13:50.831Z",
"updatedAt": "2023-09-16T19:13:51.632Z",
"publishedAt": "2023-09-16T19:13:51.629Z",
"franchise": [{
"id": 4,
"state": "Florida"
}, {
"id": 5,
"state": "New York"
}]
}
}],
"meta": {
"pagination": {
"page": 1,
"pageSize": 25,
"pageCount": 1,
"total": 1
}
}
}
Strapi 的工作方式。没有直接的方法来删除组件。这并非不可能,但是……
就您而言,我会考虑并将特许经营权重构为集合类型而不是可重复的组件。
这是关于 Strapi 内容建模的精彩演讲https://www.youtube.com/watch?v=PDnWCnA6qTg
但如果您想删除该组件,则必须更新
mutation
集合restaurant
类型。并传递整个对象,减去要删除的特许经营权。
这将更新
restaurant
收藏类型并删除佛罗里达州的特许经营权。由于我们没有在更新突变中传递它,因此 Strapi 将删除它。
但最好的方法是将其转换为
collection
类型而不是component
.希望这有帮助。