如何协调 Relay/GraphQL 的 globalId 与 mobgodb 的 _id?

Posted

技术标签:

【中文标题】如何协调 Relay/GraphQL 的 globalId 与 mobgodb 的 _id?【英文标题】:How to reconcile Relay/GraphQL's globalId with mobgodb's _id? 【发布时间】:2016-11-01 09:07:54 【问题描述】:

我打算使用 mobgodb 作为我的后端存储,并使用 graphql + relay 进行客户端-服务器通信。 如何协调 Relay 的 globalId 和 Mongo id?他们甚至应该是相同的,如果不是,我怎么能将一个连接到另一个?

【问题讨论】:

【参考方案1】:

我认为有两种选择:

使用 mongoose 并将模型上的 id 选项设置为 true,它将生成一个带有十六进制字符串的 id 属性

或在您的 graphql 架构上添加一个 id 字段并以这种方式解决它(未测试)

resolve(me) 
  return me._id.toString()

【讨论】:

【参考方案2】:

globalIdField 通常用于定义 graphql 实体的 id 字段,在内部它使用toGlobalId 函数,该函数接受 id 作为第二个参数。然后可以在节点接口定义中使用fromGlobalId 函数来提取 id 和定义的类型。 这是一个mongodb示例,说明如何define id字段,然后use它。

【讨论】:

以上是关于如何协调 Relay/GraphQL 的 globalId 与 mobgodb 的 _id?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Realm 与 Relay/GraphQL 一起使用

如何使用 Relay、GraphQL 和 React 渲染数据

如何订阅relay/graphql突变的进度事件

Graphql + Relay graphql-relay-js 依赖

使用 Relay 和 GraphQL 进行查询

使用 graphql-java 构建 Relay GraphQL 服务器