如何删除 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()