graphql/strapi:为什么获取具有大型json对象的模型的ID需要这么长时间?

graphql/strapi:为什么获取具有大型json对象的模型的ID需要这么长时间?,graphql,mlab,strapi,Graphql,Mlab,Strapi,我有一个名为“考试”的模型和它的许多实例。每个实例都有一个名为questions的大型json对象。但是当我只获取考试的ID和名称时,我可以看到他们的json对象使得获取速度非常慢: query { exams { name, _id, } } 似乎只是访问一个具有大型json对象的特定模型需要花费很长时间,即使不获取json对象的内容也是如此 我还注意到,如果我从一个与某些考试相关的模型中获取数据,那么这个模型的获取速度也会非常慢 只有当获取与模型本身与考试有关系的

我有一个名为“考试”的模型和它的许多实例。每个实例都有一个名为questions的大型json对象。但是当我只获取考试的ID和名称时,我可以看到他们的json对象使得获取速度非常慢:

query {
  exams {
    name,
    _id,
  }
} 
似乎只是访问一个具有大型json对象的特定模型需要花费很长时间,即使不获取json对象的内容也是如此

我还注意到,如果我从一个与某些考试相关的模型中获取数据,那么这个模型的获取速度也会非常慢

只有当获取与模型本身与考试有关系的模型时,才是快速的。也就是说,只能非常快速地获取三级关系模型

这有什么意义吗?我应该如何修复我的集合,以便快速获取考试列表。看起来,即使我将每个测试的json对象移动到一个相关的集合,它仍然会很慢


提前感谢

您的GraphQL应用程序存在性能问题。在你的问题上,你没有提供问题的原因。你应该找到瓶颈

若在数据库层出现问题,那个么您可以使用改进的mlab MongoDB实例来改进它

若在查询层出现问题,那个么您需要在解析器中使用。这真是太棒了

若问题出现在错误的数据结构上,那个么您需要重新设计GraphQL模式或mongoose模型


如果Node.js层出现问题,则不应阻止事件循环。

非常感谢galkin,我不知道如何使用投影来帮助解决问题,因为无论从哪个模型中提取任何数据时,甚至从与“有问题”模型相关的另一个模型中提取数据时,都会出现问题(甚至只是获取第二个模型的ID)。但我会仔细研究您提出的所有建议,并尝试更好地了解问题的原因。谢谢