【发布时间】:2018-11-04 05:29:55
【问题描述】:
我正在尝试通过在团队(父级)中添加玩家姓名并努力获取玩家姓名列表来实现嵌套突变...
在 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();
}
},
我一直在努力寻找为什么我得到"players": [] 而不是"players": [ {"name": "John Doe" } ] 的原因。
我需要在.save() 之后包含.then(...) 以获得结果吗?有什么例子吗?感谢您的帮助。
顺便说一句,我使用 mongoDB/mongoose 方法。将它们保存在本地 mongoDB 中。
【问题讨论】: