如何删除 Sanity iO 中的文档属性?
How to delete a document attribute in Sanity iO?
我的 Sanity Document 中有一组名为 Images 的对象,名为 Comments
comments[] 数组中的示例评论对象如下所示:
{
"_key": "6510dc79cf8b",
"comment": "Hello world",
"postedBy": {
"_id": "117108441389496202965",
"image": "https://lh3.googleusercontent.com/a-/AOh14Ggq3iKH-nketDY9Qx7Y2Yva09E5_2WNJYVr77AA9AQ=s96-c",
"userName": "haha"
}
}
我想删除图像文档中评论数组中的这条评论。
在我的图像架构中,理智看起来像:
{
name: "comments",
title: "Comments",
type: "array",
of: [{ type: "comment" }],
},
],
};
我正在尝试通过
删除此评论
const deleteComment = async (key) => {
try {
client
.patch(pinId)
.delete([{ comment, _key: key, postedBy: { _type: "postedBy", _ref: user._id } }])
.commit()
.then(() => {
fetchPinDetails();
setComment("");
setAddingComment(false);
});
window.location.reload();
} catch (error) {
console.log(error);
}
};
但是补丁中不存在 delete()。
是否有其他方法可以执行此简单查询(如果它在 SQL 中)?快把我逼疯了
您应该可以使用 unset 来完成。像这样:
client.patch(pinId).unset([`comments[_key==${key}]`]).commit()
我的 Sanity Document 中有一组名为 Images 的对象,名为 Comments
comments[] 数组中的示例评论对象如下所示:
{
"_key": "6510dc79cf8b",
"comment": "Hello world",
"postedBy": {
"_id": "117108441389496202965",
"image": "https://lh3.googleusercontent.com/a-/AOh14Ggq3iKH-nketDY9Qx7Y2Yva09E5_2WNJYVr77AA9AQ=s96-c",
"userName": "haha"
}
}
我想删除图像文档中评论数组中的这条评论。
在我的图像架构中,理智看起来像:
{
name: "comments",
title: "Comments",
type: "array",
of: [{ type: "comment" }],
},
],
};
我正在尝试通过
删除此评论 const deleteComment = async (key) => {
try {
client
.patch(pinId)
.delete([{ comment, _key: key, postedBy: { _type: "postedBy", _ref: user._id } }])
.commit()
.then(() => {
fetchPinDetails();
setComment("");
setAddingComment(false);
});
window.location.reload();
} catch (error) {
console.log(error);
}
};
但是补丁中不存在 delete()。
是否有其他方法可以执行此简单查询(如果它在 SQL 中)?快把我逼疯了
您应该可以使用 unset 来完成。像这样:
client.patch(pinId).unset([`comments[_key==${key}]`]).commit()