是否可以使用 GraphQLList 从多个表中获取数据

2024-01-19

在 GraphQL 中,我们可以在 GraphQLList 中写入对象类型并获取所有字段。我正在使用关联,它正在连接两个表,但我无法获取两个表的字段。它只接受我在 GraphQLList 中编写的字段。因为我想要数据列表。

这是代码

films table:

    module.exports =(sequelize, DataTypes) => {
  const films = sequelize.define(
    'films',
    {
      id:{
        type: DataTypes.INTEGER,
        primaryKey: true,
        allowNull: false,

      },
      name: {
        type: DataTypes.STRING,

      },
      },

  );

  films.associate = (models) => {


    films.hasMany(models.movie_stream, {
      foreignKey: 'movie_id',
    });

};

  return films;

}

movie_stream table:

    module.exports = (sequelize, DataTypes) => {
  const movie_streams = sequelize.define('movie_streams', {
    id:{
      type: DataTypes.INTEGER,
      primaryKey: true,
      allowNull: false,
    },
      movie_id: {
          type: DataTypes.STRING,
          foreignKey: "movie_id",

        },
     });

  movie_streams.associate = (models) => {

    movie_streams.hasMany(models.films, {
      foreignKey: 'id',
    });
  };

  return movie_streams;
};

Schema file:

movieList:{
      type: new GraphQLList(Films),
 resolve: (parent,args)=>{
return newdb.films.findAll({attributes:['id','name','permalink'],
where: {content_category_value:parent.id },
include: [{
    model:newdb.movie_stream,
    attributes:['id','movie_id'],
}],
}).then(data=>{
    return data;
})
}

我可以在这里写类型:new GraphQLList(Films, Movie Stream)吗?

我已经尝试过,但它不起作用。请给我一些想法如何获取两个表的字段???


在 GraphQL 中实现此目的有两种主要方法:联合和接口。

接口是 GraphQL 架构中两个或多个对象类型共享某些字段(特征)的地方。例如,您可能有一个Product商店中所有商品的界面,每个产品都有一个price, barcode, and shelfLocation。您的所有产品,例如Shampoo, Bread, LawnChair然后将实现这个接口。

interface Product {
  price: Float
  barcode: Int
  shelfLocation: ShelfLocation
}

type Bread implements Product {
  price: Float
  barcode: Int
  shelfLocation: ShelfLocation
  brand: String
  numberOfSlices: Int
  calories: Float
  bestBefore: Date
}

extend type Query {
  searchProducts(phrase: String!): [Product!]
}

联合是您声明某物可以返回多个对象类型的地方,但这些类型不必具有任何共同的属性。

type Shark {
  name: String
  numberOfTeeth: Int
}

type Shoe {
  brand: String
  size: String
}

union SharkOrShoe = Shark | Shoe

extend type Query {
  searchSharksAndShoes(phrase: String!): [SharkOrShoe!]
}

在这两种情况下,您都可以使用片段或内联片段查询类型特定字段:

query {
  searchProducts(phrase: "tasty") {
    # shared fields
    __typename
    price
    barcode
    shelfLocation { aisle, position }

    # type specific fields
    ... on Bread { brand }
    ...breadFrag
  }
  searchSharksAndShoes(phrase: "sleek") {
    # only the introspection fields are shared in a union
    __typename

    # type specific fields
    ... on Shark { name, numberOfTeeth }
    ...shoeFrag
  }
}

fragment breadFrag on Bread {
  barcode
  bestBefore
}

fragment shoeFrag on Shoe {
  brand
  size
}

您可以在以下位置了解更多相关信息GraphQL 架构文档 https://graphql.org/learn/schema/并阅读有关GraphQL接口类型 https://graphql.org/graphql-js/type/#graphqlinterfacetype and GraphQLUnion类型 https://graphql.org/graphql-js/type/#graphqluniontype在 GraphQL.js 文档中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以使用 GraphQLList 从多个表中获取数据 的相关文章

  • ExtJS GridPanel 中的垂直滚动条

    我正在开发一个项目 其中页面上有一个 GridPanel 该面板可以显示任意数量的行 并且我设置了 autoHeight 属性 这会导致 GridPanel 扩展以适合行数 我现在想要一个水平滚动条 因为在某些分辨率下 并非所有列都会显示
  • 使用和不使用 SciPy 计算 k 组合的数量

    我对这个函数感到困惑combSciPy 的 http docs scipy org doc scipy 0 14 0 reference generated scipy misc comb html看起来比简单的 Python 实现要慢 这
  • 如何将 Redux DevTools 扩展添加到我的 React-Redux 商店?

    我正在尝试将 Redux DevTools Chrome 扩展添加到我的 redux 商店 并在此处进行描述 http extension remotedev io http extension remotedev io 这是我的商店 le
  • 反转默认比例梯度ggplot2

    我是新手 我正在尝试设计热图 这是我的代码 ggplot gd aes Qcountry Q6 1 Q6d order TRUE geom tile aes fill prob colour white theme minimal labs
  • 为什么 SQL Server 不推荐使用 SET ANSI_PADDING OFF?

    根据 MSDN BOL 在线书籍 SET ANSI PADDING http msdn microsoft com en us library ms187403 aspx 在 Microsoft SQL Server 的未来版本中 ANSI
  • travis-ci 安装程序使用 --github-token 发布

    我在使用带有 github 令牌的安装版本时遇到问题 我喜欢 travis ci 但我不愿意透露我的 github 密码 我需要使用令牌并且我阅读了文档 因为这应该可以通过这种方式实现 不幸的是它仍然要求输入密码 travis login
  • bin 文件夹内任何文件的任何更改是否会导致 ASP.NET Web 应用程序中的应用程序回收?

    我知道在 ASP NET Web 应用程序中 更改位于bin文件夹会导致应用程序回收 但我想知道 正如主题所暗示的那样 是否any文件更改会导致这种行为吗 此场景中是否包含简单的文本文件 那么子文件夹呢 bin文件夹 它们的内容呢 我知道我
  • 并行 Haskell - GHC GC 火花

    我有一个正在尝试并行化的程序 带有可运行代码的完整粘贴here http lpaste net 101528 我进行了分析 发现大部分时间都花在findNearest这本质上是一个简单的foldr超过一个大Data Map findNear
  • 如何对数字进行排序? [复制]

    这个问题在这里已经有答案了 下面是代码 Is the sortNumber对数字进行排序的函数 a 和 b 是什么意思以及为什么存在 为什么sortNumber in n sort sortNumber 没有指定任何参数a and b Ja
  • 如何设置打开文件时默认展开?

    In my vimrc我已经把set foldmethod syntax启用方法折叠等 但是 我不喜欢每次打开文件时都会折叠整个文件的默认设置 有没有办法启用foldmethod 但是当我打开文件时文件是否展开了 set foldlevel
  • 带有客户端证书的android webview

    我尝试了几天使用嵌入在应用程序中的客户端证书的Web视图 但在我看来 android sdk没有提供任何方法来做到这一点 是否有回调来拦截服务器发送的质询 有没有办法将 webview 与客户端证书一起使用并发出 https 请求 因为我也
  • django:url 标签 -> 如何使用变量作为 url_name?

    我有一个 django 视图 它声明了一个目标变量 target name of next view to call return render request template locals 我想在我的模板中使用这个目标变量 我尝试了以下
  • 将十进制转换为十六进制

    首先 这是家庭作业 我正在尝试将 5 位数字读入寄存器 bx 假定该数字不大于 65535 16 位 以下是我尝试这样做的方法 但是 当我尝试打印该号码时 我仅打印输入的最后一位数字 这让我猜测 当我向 bx 添加另一个数字时 它会覆盖以前
  • 当页面加载图像时,它是只加载一次,还是每次在标记中找到它时加载?

    当页面加载图像时 它是只加载一次 还是每次在标记中找到它时加载 那么 jquery 呢 附加一个 img 会导致它再次重新加载吗 我问这个问题是因为我有高分辨率图像 但需要在标记的许多情况下使用它 img src hello jpg img
  • qt 如何知道按钮被点击?

    我正在尝试编写一个程序 用声音进行一些操作 我的问题是我有 3 个播放按钮和 3 个标签 我希望无论我单击 播放 按钮 都应该播放按钮附近标签中名称的声音 我有一个没有任何参数的播放插槽 那么 如何分别连接到每个播放按钮和每个标签呢 实际上
  • 高图表的分散工具提示未显示

    我有一个散点图和条形图 我无法查看酒吧上方散点的工具提示 这是小提琴http jsfiddle net tZ9Rt http jsfiddle net tZ9Rt 我正在使用这两个系列 series type scatter index 2
  • 我可以使用 VBA 将密码“传递”到 Excel 中的外部数据库连接吗?

    我正在尝试使用 VBA 隐藏我在 Excel 工作表中设置的数据连接的密码 由于 Excel 以纯文本形式存储外部数据源的密码 因此我想让 VBA 调用表的刷新并提供密码 我录制了刷新表格并输入密码的宏 但令我沮丧的是 它似乎省略了密码部分
  • 在 Rx 中,如何按 id 对事件进行分组并按多个时间跨度限制每个组?

    可以这么说 我陷入了 Rx 热潮 这个问题与我的相关here https stackoverflow com questions 19425965 rx how to group by a key a complex object and
  • 使用 Fetch 发生超时错误 - React Native

    我有一个正在运行的用户登录功能 但是 我想在获取时加入超时错误 有没有办法设置一个 5 秒左右的计时器 这样在这个时间之后就会停止尝试获取 否则 一段时间后我就会出现红屏 提示网络错误 userLogin var value this re
  • 当支持 SPDY 的浏览器收到 HTTP2 (H2) 响应时会发生什么?

    我的直觉是 支持 SPDY 的浏览器会将其视为 SPDY 响应 然而 我能找到的最多的是 H2 响应将优雅地降级到 HTTP1 1 的保证 我正在考虑以面向 H2 的方式提供资产 多个请求 无域分片等 但我确实需要支持一些非 H2 浏览器

随机推荐

  • 使用 MongoDB 生成的 _ids 作为“秘密数据”(例如,OAuth 令牌)

    是 MongoDB id字段足够随机 不可猜测来充当秘密数据 例如 如果我正在构建服务器端 OAuth 我可以使用 id 作为用户的 OAuth 令牌吗 我想这样做是因为它为数据库提供了清洁性和可索引性 例如 tokens id gt oa
  • IntentService 中未调用 OnHandleIntent()

    我知道这个问题以前曾被问过 但我已经浏览了所有我能找到的答案 但仍然无法解决问题 问题是当 BroadcastReceiver 启动时 不会调用 IntentService onHandleIntent 奇怪的是 构造函数确实运行了 正如我
  • 将计算出的键添加到集合中

    请考虑这个由男人和女人组成的数据集 我根据几个变量在第二个时刻进行过滤 type ls JsonProvider lt gt let dt ls GetSamples let dt2 dt gt Seq filter fun c gt c
  • 处理 django 查询中的外来字符

    我正在构建从 GeoNames com 导入的城市名称搜索 有些城市的名称中带有国际字符 例如 伊斯坦布尔 实际上是数据库中的 伊斯坦布尔 当人们搜索 伊斯坦布尔 时 伊斯坦布尔不会出现 有没有一种方法可以在搜索中添加过滤器或解码器来知道
  • javascript从对象数组中获取键名称

    from data ja 大阪市 en Osaka 我想要得到 ja and en 我尝试了几种方法 data map function i return i 它返回 数字数组 console log Object keys Object
  • Espresso - 如何将 typeText 切换为英语或其他语言输入模式

    我正在使用 Espresso 来实现我的应用程序的自动测试框架 但在我设计的一些测试用例中 我发现我的测试总是失败 根本原因并不在于我对功能实现代码的测试代码 根本原因是在android输入法模式下 有时候 在中文输入模式下 我输入的文字是
  • jQuery .load 回调函数中 textStatus 参数的所有可能值是什么?

    我正在利用 jQuery 的回调函数 load http api jquery com load 方法来运行某些代码 如果textStatus的参数 loadmethod 等于某个字符串 例如我有 jQuery myContainer lo
  • VSCode 中具有语义突出显示的语言服务器

    我想写一个语言服务器VSCode具有语义突出显示支持 我使用的语言有非常复杂的规则 所以我不想依赖标记器来区分标识符和关键字 我已经在以下地区提供语言服务VS Community 我在那里编写了自己的分类器 可以编写自己的分类器VSCode
  • 在 OCR(光学字符识别)之前,您推荐使用什么软件进行图像增强? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我们目前正在研究在提交 OCR 之前提高图像质量的方法 我们当前使用的 OCR 引擎是 Nuance v15 的 Scansoft API
  • 使用 python 的多处理池和映射函数测量进度

    我用于并行 csv 处理的以下代码 usr bin env python import csv from time import sleep from multiprocessing import Pool from multiproces
  • 使用预定义的过滤器过滤 android ListView

    我想为 ListView 实现预定义的过滤器 我的 ListView 将包含数字 并且会有一个过滤器图标 单击该图标应显示 显示奇数 显示偶数 和 显示全部 等选项 如何在单击 过滤器 图标时显示弹出对话框 如果这是使用简单的弹出对话框实现
  • 使用 EmacsClient 创建带有文本的新缓冲区

    我有一个程序可以将文本发送到任何其他程序以进行进一步分析 例如 sed grep 等 我希望它将数据发送到 Emacs 并在那里进行分析 我该怎么做呢 EmacsClient 默认采用文件名 这是一个数据字符串而不是文件 我真的不想创建和删
  • PowerShell 远程处理序列化和反序列化

    用于从 PowerShell 序列化和反序列化对象 由 PowerShell Remoting 执行 的例程是否可用 我想避免将对象写入磁盘 使用 Export CliXML 并使用 Import CliXML 读回 基本上 我想获取反序列
  • Android WorkManager 不会触发两个计划工作线程之一

    我的应用程序中安排了两个定期工作人员 其中一名工作人员在 24 小时后重复 另一名工作人员在 15 分钟后重复 最初 在全新安装时 一切按预期工作 但几天后 我在 2 台设备 共 5 台 上遇到了问题 24 小时工作人员被正确触发 但 15
  • 在 Hyperledger Fabric Chaincode 中使用 cron 作业

    我正在尝试在我的链代码中设置一个 cron 作业以 24 小时间隔运行 我正在尝试使用以下库来设置调度程序 https github com jasonlvhit gocron https github com jasonlvhit goc
  • 条件键控连接/更新并更新匹配的标志列

    这与question https stackoverflow com questions 29658627 conditional binary join and update by reference using the data tab
  • CMake 无法确定目标的链接器语言 - C++

    我正在尝试开发一个供私人使用的引擎 我正在使用 CMake 因为我打算将来使其成为多平台 但是开始出现一个我以前从未遇到过的错误 我尝试将项目 IEngine 更改为项目 IEngine CXX 如堆栈溢出的其他问题中所述 但错误仍然存 在
  • 执行 bash 文件时出现问题

    你好呀 我在学习结合 sh 文件和 PHP 时遇到了一些问题 我创建了一个文件 test sh 并在该文件中调用了一个名为 test php 的 PHP 文件 如果我双击 sh 文件 那么它会完美运行 但是当我尝试从终端运行它时 我会收到
  • 如何在进度条标签内添加标签?

    我想在进度条标签中添加一个标签 就像这个漂亮的例子一样 假设蓝色是值 红色是最大值 我怎样才能在里面添加一个标签 比如我的 35 使用CSSposition relative将文本移动到栏上 对于短杆 一个快速而肮脏的解决方案是 posit
  • 是否可以使用 GraphQLList 从多个表中获取数据

    在 GraphQL 中 我们可以在 GraphQLList 中写入对象类型并获取所有字段 我正在使用关联 它正在连接两个表 但我无法获取两个表的字段 它只接受我在 GraphQLList 中编写的字段 因为我想要数据列表 这是代码 film