You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GraphQL关联类型更新求助:两类场景的Mutation编写问题

GraphQL关联类型更新问题解答

1. 更新特定用户下特定问卷的OpenQuestions列表

你之前的写法错误在于:直接对User类型执行更新,但OpenQuestions是Questionnaire的字段,不属于User;同时where条件错误地将问卷id放在了用户的筛选条件中,无法正确定位目标问卷。

正确的做法是直接更新Questionnaire类型,通过关联的User字段定位到目标用户的指定问卷:

mutation {
  updateQuestionnaires(
    where: {
      id: "Project 1"
      User: { username: "Kilian" }
    }
    update: {
      OpenQuestions: [2, 3]
    }
  ) {
    questionnaires {
      id
      OpenQuestions
      User {
        username
      }
    }
  }
}

说明:

  • where条件通过User: { username: "Kilian" }关联到目标用户,同时指定问卷id,确保只更新该用户下的对应问卷
  • update块中直接设置OpenQuestions的新数组值

2. 更新特定用户下特定问卷中的特定答案

要更新指定的Answer,需要通过多层关联筛选定位:先找到属于目标问卷的Answer,而该问卷又属于目标用户,同时指定Answer的id。示例代码如下:

mutation {
  updateAnswers(
    where: {
      id: "目标Answer的ID"
      Questionnaire: {
        id: "Project 1"
        User: { username: "Kilian" }
      }
    }
    update: {
      # 根据需求修改需要更新的字段
      answer: "新的答案内容"
      component: "更新后的组件名称"
      answered_at: "2024-05-20T12:00:00Z"
    }
  ) {
    answers {
      id
      answer
      component
      answered_at
      Questionnaire {
        id
        User {
          username
        }
      }
    }
  }
}

说明:

  • where条件层层筛选:匹配Answer的id,所属Questionnaire的id,且该Questionnaire关联的User用户名是Kilian,确保只更新目标用户目标问卷下的指定答案
  • update块中填写需要修改的字段及新值

内容的提问来源于stack exchange,提问作者Kilian Kramer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 10:06:19