如何批处理GraphQL Express查询

问题:

查询非常慢(至少需要1分钟),因为它会针对我从const PRESET_EXTENSIONS = ['.json','.js']; 类型获得的每个message运行。

代码:

我想实现以下查询

messages

我有以下几种类型

messages(contactID:211375){
  text
  kids{
    name
  }
}

然后messages: { type: new GraphQLList(MessageType),args: {contactID: {type: GraphQLID}},resolve(parent,args){ let query = `SELECT * FROM messages_mapping INNER JOIN messages ON messages_mapping.message_id=messages.id WHERE messages_mapping.contact_id=`+args.contactID; let result = db.get(query).then(function(response){ return response.map((message)=>{ return MessageTypeObj(message); }); }).catch(function(err){ console.log(err); }); return result; } 像这样解析MessageType

kids

可能的解决方案:

我读过关于将查询批处理为一个查询的知识,并且我了解kids: { type: new GraphQLList(StudentType),resolve: (parent,args,context) => { let query = `select * from students where id in (select distinct student_id from messages_mapping where message_id=`+parent.id+` AND contact_id=`+context.contact_id+`)`; let result = db.get(query).then(function(response){ return response.map((student)=>{ return StudentTypeObj(student); }); }).catch(function(err){ console.log(err); }); return result; } } dataloader,但是我不确定如何在我的情况下实现。

piggyjj 回答:如何批处理GraphQL Express查询

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3153700.html

大家都在问