0

大家!我正在尝试在我的 graphql 项目中使用 Facebook 的 Dataloader。所以,现在我面临下一个问题。当我通过 id 向我的数据库询问数据时,例如:select * from books where books.author in (4,5,6,7) 我得到一个错误:“函数没有返回一个长度相同的数组的承诺键数组”。因为 id 4 我可以拿到更多的书,而不仅仅是一本书。有人知道如何解决吗?

4

2 回答 2

1

Dataloader期望您返回与加载程序的输入长度相同的数组。因此,如果loader获取[4,5,6,7]作为输入,它将需要返回一个长度为4. 还要记住,从加载器返回的结果需要与输入 ID 的顺序相同。这可能是也可能不是您必须担心的事情,具体取决于从数据库返回数据的方式。

于 2018-08-17T20:39:08.727 回答
0

您应该为每个 id 返回一个数组 - 数组数组。您必须将 sql 结果 - 具有重复项的平面列表转换为保留输入 ID(数量和顺序)的“分组”记录数组。

于 2018-08-17T20:59:25.967 回答