我在数据库中有一些由用户创建的组。每个组中都有多个成员。这是典型的小组的样子:
{
"groupName": "some-group-name",
"userIds": ["001", "002", "003"]
}
Run Code Online (Sandbox Code Playgroud)
我的数据库中还有一个单独的用户节点。这是用户的样子:
{
"id": "001",
"userName": "some-unique-username"
}
Run Code Online (Sandbox Code Playgroud)
我想列出每个组及其成员。因此,它将是:
组1
组2
等等...
怎么可能(如果有的话)获取这些组及其用户ID,并按ID查询用户并返回一个仅包含一个请求的,包含所有数据的JSON?
现在,我只是获取一些组并遍历userIds每个组,并分别为每个用户发送请求。我不是在问分页或简单查询,我只是想获取每个组以及这些组内的用户。
我自己想通了。
我需要做的是创建一个单独的解析器来获取每个组的成员:
resolvers: {
...
Group: {
members: (group, _, context) => group.members.map(memberId => context.db.findUserById(memberId)
}
...
}
Run Code Online (Sandbox Code Playgroud)
父组对象作为第一个参数传递给解析器,因此在查询时:
{
groups(count: 10){
name
members {
name
}
}
}
Run Code Online (Sandbox Code Playgroud)
它返回前10个组的名称及其成员的名称。
| 归档时间: |
|
| 查看次数: |
8689 次 |
| 最近记录: |