我在项目中使用join-monster
,但是有一个问题我到目前为止还无法弄清楚它的原因。我有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 })
})
databases
是一个对象,每个键代表一个数据库连接。如您所见,我正在所有数据库中执行相同的查询。所有结果都很好地返回。但是当我执行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"
}
]
}
]
}
}
在我的数据库中,办公室21300380
至少有300个客户端,但在GraphQL响应中,正在返回单个客户端。我在这里做错了什么?