如何使用JoinMonster在GraphQL中连接数据库结果?
我在一个项目中使用了如何使用JoinMonster在GraphQL中连接数据库结果?,graphql,Graphql,我在一个项目中使用了joinmonster,但有一个问题我至今无法找出它的原因。我有27个相同结构的数据库。我需要在所有这些中运行一个查询,并在一个响应中连接所有结果。我的resolve属性如下所示: resolve: (parent, args, context, resolveInfo) => { return joinMonster(resolveInfo, {}, sql => { const pending = Object.keys(databas
joinmonster
,但有一个问题我至今无法找出它的原因。我有27个相同结构的数据库。我需要在所有这些中运行一个查询,并在一个响应中连接所有结果。我的resolve
属性如下所示:
resolve: (parent, args, context, resolveInfo) => {
return joinMonster(resolveInfo, {}, sql => {
const pending = Object.keys(databases).map(async (key) => {
let conn = await databases[key]()
conn.query = promisify(conn.query)
return conn.query(sql).then(result => {
conn.detach()
return result
})
})
return Promise.all(pending)
.then(values => [].concat.apply([], values))
.catch(error => { throw error })
})
数据库
是一个对象,因为每个键代表一个数据库连接。如您所见,我在所有数据库中执行相同的查询。所有结果都返回得非常好。但当我执行GraphQL查询时,将返回以下结果:
{
"data": {
"offices": [
{
"id": "21300380",
"name": "Portela Lima e Colen Advogados",
"address": null,
"city": null,
"state": null,
"clients": [
{
"clientcode": "COLIN301",
"email": "controladoria@plcadvogados.com.br"
}
]
}
]
}
}
在我的数据库中,office21300380
至少有300个客户端,但在GraphQL响应中,只返回一个客户端。我做错了什么