如何使用变量更新 graphql 中的条目

How to udpate an entry in graphql using variables

如果重要的话,我正在将 GraphQL 插件与 strapi cms 一起使用。

我不知道如何使用动态变量更新现有查询。我没有使用变量的原始突变:

mutation {
  updateExam(input: {
    where: {
      id: "1234"
    },
    data: {
      questions: "hello"
    }
  }) {
    exam {
      questions
    }
  }
}

我了解到,如果我想使用变量创建一个新条目,我应该这样写(David Maze 在这里回答:How to pass JSON object in grpahql and strapi):

const response = await strap.request('POST', '/graphql', {
  data: {
    query: `mutation CreateExam($input: CreateExamInput!) {
  createExam(input: $input) {
    exam { name, desription, time, questions }
  }
}`,
    variables: {
      input: {
        name: examInfo.newExamName,
        desription: examInfo.newExamDescription,
        time: Number(examInfo.newExamTime),
        questions: [{ gf: "hello" }],
        subjects: [this.state.modalSubjeexisting
      }
    }
  }
});

但是如何更新现有查询?我应该把

放在哪里
where: {id: "1234"}

如何提供条目的现有 ID?

我不知道这个 strapi cms,但顺便说一句,它看起来像你已经在工作的突变,我会尝试这样的更新:

    const response = await strap.request('POST', '/graphql', {
      data: {
        query: `mutation UpdateExam($input: UpdateExamInput!) {
          updateExam(input: $input) {
            exam { 
              questions 
            }
          }
        }`,
        variables: {
          input: {
            where: {
              id: examInfo.id
            },
            data: {
              questions: [{ gf: "hello" }]
            }
          }
        }
      }
    });

试一试,看看是否有效。