GraphQL嵌套突变的问题
我试图通过在团队(家长)中添加球员姓名并努力获取球员姓名列表来实现嵌套变异 在GraphiQL工具(localhost:4000/GraphiQL)中,这是我包含的Add-Mutation变量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 } } } 正在
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));
}
希望这能有所帮助