我正在尝试在我的Neo4j数据库中创建一个带有GraphQL突变的关系。除了导致问题的其他突变以外,我还有许多其他突变已在起作用。看起来像这样:
mutation(
$id: String!,
$recipe: String!,
$date: String!
) {
CreateUserRecipeRelation(id:$id, recipe:$recipe, date:$date) {
id
recipe {
name
}
}
}
我要传递以下参数:
{"id": "google-oauth2|yyyyremovedauthstuffyyyy", "recipe": "baked spaghetti", "date": "10/10/2018"}
但是GraphQL游乐场会引发以下错误:
未提供所需类型\“ String!\”的变量\“ $ id \”。“
在我的schema.graphql文件中,定义了以下内容:
CreateUserRecipeRelation (
id: String
recipe: String
date: String
): User @cypher(statement:
"MATCH (r:Recipe{name:$recipe}), (u:User{id:$id}) CREATE (r)-[c:Created_By{date:$date}]->(u) RETURN r,c,u")
如果我直接在Neo4j中运行该密码查询,它就可以正常工作。在同一项目中,我目前正在使用其他5或6个创建关系的突变,但这使我停下来。
更新:
这是我目前正在使用的一种变异,因此您可以看到结构上的相似之处:
CreateIngredientRelation (
name: String
recipe: String
quantity: String
): Ingredient @cypher(statement:
"MATCH (r:Recipe{name:$recipe}), (i:Ingredient{name:$name}) CREATE (r)-[c:Contains{quantity:$quantity}]->(i) RETURN r,c,i")
这个作品效果很好,并与之建立了无数的关系。这就是为什么我感到困惑。如果他们俩都不起作用,那么尝试并提出我认为的解决方案会更容易。
答案 0 :(得分:1)
@BehemothDan,您如何称呼这种突变?您在使用react-apollo
吗?如果是,请允许我为您提供一个示例,说明如何处理此问题。
例如,如果您有一个表单来创建此UserRecipeRelation
。您拥有Mutation
中的react-apollo
组件。在Mutation
renderProps
上的CreateUserRecipeRelation
上,您可以传递给onSubmit
上的函数。在此函数中,您传递变量:
UserRecipeRelation({ variables: { id: 'your id', recipe: 'bla bla', date: '12/12/18' } });
希望有帮助! :)