首页 > 解决方案 > KeystoneJS 关系,如何使用 id 数组进行连接

问题描述

我正在使用新版本的 Keystone Next,我正在尝试使用一组 id 一次连接多个项目。似乎 connect 支持这一点,接受一组对象。

const FINISH_VOCABULARY_QUIZ_MUTATION = gql`
mutation FINISH_VOCABULARY_QUIZ_MUTATION(
    $userId: ID!
    $wordId: ID!
) {
    updateUser(id: $userId, data: {
        wrongAnswers: {
            connect: [{id: "idblabla"}, {id: "idblabla2"}]
        }
    }) {
        id
    }
}`;

但我似乎无法弄清楚如何将这个 id 数组作为变量传递给我的突变。我知道我需要创建一个新类型?该文档仍未完成,因此还没有任何内容。我也尝试过使用字符串插值来形成我的查询,但它似乎不是 GraphQl 的事情。

标签: graphqlapollo-clientgraphql-jskeystonejs

解决方案


这更像是一个 GraphQL 问题,而不是 KeystoneJS,但要朝着正确的方向前进,您需要将查询更改为如下所示:

const FINISH_VOCABULARY_QUIZ_MUTATION = gql`
mutation FINISH_VOCABULARY_QUIZ_MUTATION(
    $userId: ID!,
    $ids: [UserWhereUniqueInput!]!
) {
    updateUser(id: $userId, data: {
        wrongAnswers: {
            connect: $ids
        }
    }) {
        id
    }
}`;

然后将您的 id 数组映射到具有 id 字段的对象数组。


推荐阅读