【问题标题】:Can I use GraphQL for mongoDB or mySQL?我可以将 GraphQL 用于 mongoDB 或 mySQL 吗?
【发布时间】:2019-02-26 22:50:51
【问题描述】:

我开始学习 GraphQL,发现 GraphQL 是一种很棒的查询语言。 但是我想知道我是否可以将 GraphQL 用于现有数据库,例如 mongoDB 或 mySQL。 也请解释一下棱镜。 prisma 是云数据库还是什么?

【问题讨论】:

  • GraphQL 是一个 API 层,不依赖于任何特定的数据库后端。 SO 问题似乎喜欢将它用作 MongoDB 的外观,但它不适合,因为 GraphQL 是非常类型化的,而 MongoDB 记录是非常无类型的。 graphql.orgprisma.io 都将提供有用的背景信息(请注意在 graphql.org 上完全没有提及数据库)。

标签: graphql prisma-graphql


【解决方案1】:

正如在上一篇文章中提到的 - 是的,你可以。

举个例子,如果您在 .NET 堆栈上编写后端应用程序 - 您可能会使用(猜想两个)经过真正测试的主要库,并且人们在实际项目中使用它(谷歌 GraphQL.Net 和第二个库应该拼写几乎相同)

但是,这两个库都只给您处理 graphql 查询和描述方案(“accounts {id name}”意味着您应该定义从 db 或其他数据源返回数据的解析器)

大多数人使用 EF(EntityFramework)作为 GraphQL 和 db 之间的数据适配器。但是,从我的角度来看,它是没有用的,特别是如果我们正在谈论从 db 获取数据并且这可能是数千个请求。 我们实现了基于轻量级数据库库的组件(适用于几乎所有流行的数据库,如 MSSQL、Postgresql、MySQL 或 Elasticsearch),能够非常轻松地配置 GraphQL 方案并提供排序、分页和复杂过滤等主要功能。

【讨论】:

    【解决方案2】:

    是的,您可以将其与现有数据库一起使用。

    Prisma 是使用 GraphQL 服务器构建的 ORM 层,它抽象出数据库并让您使用 GraphQL 查询与数据库进行交互。它目前支持 MySQL、MongoDB、AWS RDS 和 PostgreSQL。它不是数据库,但您可以将其托管在云端。

    通常,您需要另一个 GraphQL 服务器,其中的解析器将调用 Prisma 的 GraphQL 服务器。此 GraphQL 服务器是客户端调用的服务器。

    【讨论】:

      猜你喜欢
      • 2022-01-25
      • 2021-04-20
      • 1970-01-01
      • 2015-12-02
      • 2020-04-07
      • 2021-08-04
      • 1970-01-01
      • 2021-10-31
      • 2021-04-25
      相关资源
      最近更新 更多