将 DataLoader 与 Knex 一起使用的示例之一显示了以下内容:
user: new DataLoader(ids => db.table('users')
.whereIn('id', ids).select()
.then(rows => ids.map(id => rows.find(x => x.id === id)))),
那里的映射使得键数组中的键始终与结果数组中的对象匹配,例如,如果缺少 id 2 的对象:
array of keys: [1,2,3]
array of results: [object1, undefined, object3]
如果你把地图遗漏了,你会得到一个不平衡的输入/输出(例如在查询丢失的 id 时):
array of keys: [1,2,3]
array of results [object1, object3]
有没有办法map
用纯 SQL 来做这件事?