我有以下graphQL模式。最让我困扰的是它的变异,它有一个解析器,指向一个faunaDBλ函数,理想情况下,我想接受一个输入数组,并通过那里的ID更新一个faunDB集合文档。
然而,我甚至无法获得密码,无法理解如何将数据从突变传递到lambda,并返回一条消息或空数组以外的任何内容。
在我的模式下面是我编写的faunaDB FQL lambda函数,在这一点上它是非常基础的。
我想我想知道的是,传递给faunaDB lambda函数的到底是什么,我能用它做什么。我是否可以将对象数组传递给它,并通过FQL更新由ID关联的DB文档。
这方面的任何帮助都将是很好的,只是到了这一点已经是一个旅程。我非常乐意根据需要提供更多的细节。
谢谢!
type Form {
name: String!
index: Int!
user: User
formInputVals: [FormInputVal!] @relation
}
type FormInputVal {
name: String!
index: Int!
type: String!
formRoot: Form!
}
type User {
name: String!
email: String!
password: String!
forms: [Form] @relation
}
type Query {
allForms: [Form!]
allUsers: [User!]
allFormInputVals: [FormInputVal!]
}
input FormInputValInput {
name: String!
index: Int!
type: String!
}
type Mutation {
updateMultipleInputVals(input: FormInputValInput): Form!
@resolver(name: "multiple_inputs")
}faunaDB函数
Query(Lambda(["input"], []))更新:我已经尝试了以下方法,但它告诉我需要返回一个数组,我返回一个对象,不确定如何解决这个问题。
Query(
Lambda(["input"], Get(Ref(Collection("FormInputVal"), "291705061039407629")))
)发布于 2021-08-25 21:46:11
您可以将数组作为输入传递给UDF,包括将该UDF用作GraphQL解析器的情况。
有几件事需要注意:
FormInputVal类型自动生成的输入相同的内容,从而有效地覆盖了它。为自定义输入选择一个不等于[type name] + Input的名称
Form,但您返回的是一个FormInputVal以下是更新后的模式:
type Form {
name: String!
index: Int!
user: User
formInputVals: [FormInputVal!] @relation
}
type FormInputVal {
name: String!
index: Int!
type: String!
formRoot: Form!
}
type User {
name: String!
email: String!
password: String!
forms: [Form] @relation
}
type Query {
allForms: [Form!]
allUsers: [User!]
allFormInputVals: [FormInputVal!]
}
input FormInputValMultiUpdateInput {
id: ID!
name: String!
index: Int!
type: String!
}
type Mutation {
updateMultipleInputVals(data: [FormInputValMultiUpdateInput]!): [FormInputVal]!
@resolver(name: "multiple_inputs")
}和一个UDF
CreateFunction({
name: "multiple_inputs",
body: Query(
Lambda(
["data"],
Map(
Var("data"),
Lambda(
"input",
Let(
{
update: Update(
Ref(Collection("FormInputVal"), Select("id", Var("input"))),
{ data: Merge(Var("input"), { id: null }) }
)
},
Var("update")
)
)
)
)
)
})然后您可以创建两个文档:

,然后批量更新它们。

https://stackoverflow.com/questions/66414021
复制相似问题