KeystoneJS 关系,如何使用 id 数组进行连接
KeystoneJS relationships, how can I connect using an array of ids
我正在使用新版本的 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 中的东西。
与 KeystoneJS 相比,这更像是一个 GraphQL 问题,但要朝着正确的方向前进,您需要将查询更改为如下所示:
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 字段的对象数组。
有一个更好的方法:
const FINISH_VOCABULARY_QUIZ_MUTATION = gql`
mutation FINISH_VOCABULARY_QUIZ_MUTATION(
$userId: ID!,
$data: SomeAPIDefinedMutationUniqueInput
) {
updateUser(id: $userId, data: $data)
id
}
}`;
这样你:
- 不必为内部参数定义类型 (
$wordsIdWrong: [WordWhereUniqueInput]
);
- 可以reuse/share这个突变 - 从一些导入它,常见的查询,地方(目录) - 只需用不同的
data
变量调用它;
- reading/maintenance更容易;
PS。老实说,应该有一些特定的 [to quizes] 突变(不要为此使用 userUpdate
),用户(或更好的测验)id
在 SomeAPIDefinedUniqueInput
中定义。
我正在使用新版本的 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 中的东西。
与 KeystoneJS 相比,这更像是一个 GraphQL 问题,但要朝着正确的方向前进,您需要将查询更改为如下所示:
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 字段的对象数组。
有一个更好的方法:
const FINISH_VOCABULARY_QUIZ_MUTATION = gql`
mutation FINISH_VOCABULARY_QUIZ_MUTATION(
$userId: ID!,
$data: SomeAPIDefinedMutationUniqueInput
) {
updateUser(id: $userId, data: $data)
id
}
}`;
这样你:
- 不必为内部参数定义类型 (
$wordsIdWrong: [WordWhereUniqueInput]
); - 可以reuse/share这个突变 - 从一些导入它,常见的查询,地方(目录) - 只需用不同的
data
变量调用它; - reading/maintenance更容易;
PS。老实说,应该有一些特定的 [to quizes] 突变(不要为此使用 userUpdate
),用户(或更好的测验)id
在 SomeAPIDefinedUniqueInput
中定义。