如何在 neo4j 的 graphql 解析器中使用 Promise.all?
How to use Promise.all in graphql resolver for neo4j?
我有多个用户节点(大约 45 个用户),我想 return 用户总数以及用户的详细信息也在单个查询中。 (类似于 )
我的架构:
type User {
ID: Int
name: String
}
type Query {
users: [User]
}
在 运行 users 查询的解析器之后,我想提取总计数以及用户详细信息,如下所示:
{
"data": {
"users": {
"total": 45
"users": [
{
"ID": 1,
"name": "User A"
},
{
"ID": 2,
"name": "User B"
},
...
]
}
但是我很困惑如何在neo4j中使用Promise.all。我试图查看 promise 在 neo4j 中的工作原理,但没有找到任何需要的信息。
那么,您能否让我知道我应该如何为这种情况编写解析器?任何帮助将不胜感激!!
在 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
}
我有多个用户节点(大约 45 个用户),我想 return 用户总数以及用户的详细信息也在单个查询中。 (类似于
我的架构:
type User {
ID: Int
name: String
}
type Query {
users: [User]
}
在 运行 users 查询的解析器之后,我想提取总计数以及用户详细信息,如下所示:
{
"data": {
"users": {
"total": 45
"users": [
{
"ID": 1,
"name": "User A"
},
{
"ID": 2,
"name": "User B"
},
...
]
}
但是我很困惑如何在neo4j中使用Promise.all。我试图查看 promise 在 neo4j 中的工作原理,但没有找到任何需要的信息。 那么,您能否让我知道我应该如何为这种情况编写解析器?任何帮助将不胜感激!!
在 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
}