我有多个用户节点(大约45个用户),我想在一个查询中返回总用户数以及用户的详细信息。 (类似于How to design the following resolver for GraphQL server?)
我的架构:
type User {
ID: Int
name: String
}
type Query {
users: [User]
}
运行用户查询的解析程序后,我想提取总计数以及用户详细信息,如下所示:
{
"data": {
"users": {
"total": 45
"users": [
{
"ID": 1,
"name": "User A"
},
{
"ID": 2,
"name": "User B"
},
...
]
}
但我很困惑如何在neo4j中使用Promise.all。我试着看看诺言如何在neo4j中起作用,但我找不到任何想要的信息。 那么,请你告诉我如何为这个案子编写我的解析器?任何帮助都会很明显!!
答案 0 :(得分:0)
在neo4j中使用Promise.all并没有什么不同。 Promise.all来自javascript。要编写解析器,您可以执行以下操作:
let countQuery = "MATCH(n:User) RETURN count(n) as count;";
let userQuery = "MATCH(u:User) RETURN u;";
return Promise.all([
dbSession().run(countQuery, params),
dbSession().run(userQuery, params)
]).then((data) => {
return {
total: data[0].records.map(record => {return record.get('count')}
users: data[1].records.map(record => {return record.get('u')}
}
})
在架构类型中,您可以将其更改为以下内容:
type User {
ID: Int
name: String
}
type PagedData {
total: Int,
users: [User]
}
type Query {
users: PagedData
}