Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
GraphQL嵌套突变的问题_Graphql_Mutation - Fatal编程技术网

GraphQL嵌套突变的问题

GraphQL嵌套突变的问题,graphql,mutation,Graphql,Mutation,我试图通过在团队(家长)中添加球员姓名并努力获取球员姓名列表来实现嵌套变异 在GraphiQL工具(localhost:4000/GraphiQL)中,这是我包含的Add-Mutation变量 mutation AddPlayerToTeam($name: String!, $teamId: ID!){ addPlayerToTeam(player: $name, teamId: $teamId){ id players{ name } } } 正在

我试图通过在团队(家长)中添加球员姓名并努力获取球员姓名列表来实现嵌套变异

在GraphiQL工具(localhost:4000/GraphiQL)中,这是我包含的Add-Mutation变量

mutation AddPlayerToTeam($name: String!, $teamId: ID!){
  addPlayerToTeam(player: $name, teamId: $teamId){
    id
    players{
      name
    }
  }
}
正在添加teamID和name的查询变量

{
  "teamId": "5aff545371fc930a4c43b2b9",
  "name": "John Doe"
}
结果表明

{
  "data": {
    "addPlayerToTeam": {
      "id": "5b072774e385740c38483111",
      "players": []
    }
  }
}
但我希望球员的名字能像这样出现

{
  "data": {
    "addPlayerToTeam": {
      "id": "5b072774e385740c38483111",
      "players": [
         { 
           "name": "John Doe"
         }
       ]
     }
  }
}
变异码

AddPlayerToTeam: {
    type: TeamType,
    args: {
            name: { type: new GraphQLNonNull(GraphQLString) },
            teamId: { type: new GraphQLNonNull(GraphQLID) }
        },
        resolve(parent, { name, teamId }) {
            let addPlayer = new Player({ name, teamId });
            return addPlayer.save();
        }
    },
我一直在努力寻找为什么我得到的是
“玩家”:[]
而不是
“玩家”:[{“姓名”:“John Doe”}]
。 我需要在
.save()
之后包含
。然后(…)
才能得到结果吗?有什么例子吗?谢谢你的帮助


顺便说一句,我使用mongoDB/mongoose方法。在本地mongoDB中保存它们

找到了此问题的解决方案。。。感谢graphql.slack的andrewingram的帮助。只需包含
。然后(…)
即可返回结果

AddPlayerToTeam: {
    type: TeamType,
    args: {
        name: { type: new GraphQLNonNull(GraphQLString) },
        teamId: { type: new GraphQLNonNull(GraphQLID) }
    },
    async resolve(parent, { name, teamId }) {
        let addPlayer = new Player({ name, teamId });
        await addPlayer.save();
        return Team.findById(teamId);
    }
},
还是承诺版

resolve(parent, { name, teamId }) {
        let addPlayer = new Player({ name, teamId });
        return addPlayer.save().then(() => Team.findById(teamId));
    }
希望这能有所帮助