仅使用SQL匹配DataLoader API
将DataLoader与Knex一起使用的示例之一显示了以下内容:仅使用SQL匹配DataLoader API,sql,postgresql,knex.js,dataloader,Sql,Postgresql,Knex.js,Dataloader,将DataLoader与Knex一起使用的示例之一显示了以下内容: user:newdataloader(id=>db.table('users')) 。其中('id',id.)。选择() 。然后(rows=>ids.map(id=>rows.find(x=>x.id==id)), 存在的映射使得关键帧数组中的关键帧始终与结果数组中的对象匹配,例如,如果缺少id为2的对象: array of keys: [1,2,3] array of results: [object1, undefined
user:newdataloader(id=>db.table('users'))
。其中('id',id.)。选择()
。然后(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时):
是否有任何方法可以使用纯SQL执行
映射
位?这意味着数据库没有id为2的行,因此其中
不会返回超过2行。在使用的纯SQL中,没有办法做到这一点,其中
。对于多个子查询,这是可以完成的,但这将是一个糟糕的解决方案。这意味着数据库没有id为2的行,因此其中
不会返回超过2行。在使用的纯SQL中,没有办法做到这一点,其中
。有了多个子查询,这是可以做到的,但这将是一个糟糕的解决方案
array of keys: [1,2,3]
array of results [object1, object3]