Connection是基于`array`的,这是设计中继服务器的设计风格指南吗?

Connection is based on `array`,is this a design style guide for design a relay server?

connection/arrayconnection.js中,似乎所有功能都倾向于与array一起使用。
例如:offsetToCursor 是生成 Cursor 的唯一方法。这是否意味着它是我必须遵循的设计模式,或者暗示我应该在使用 array 以外的东西时自己生成 Cursor。如果我打算使用 Mongodb,我是否应该将数据库接口设置为静态数组 ?

顺便说一句:
作为web开发的新手,我有点迷茫如何实现一个合格的中继服务器。
是否有一些设计 graphql-relay 服务器的指南,我应该一直遵循 graphql-relay-js,Facebook 与 relay-server 一起使用的数据库吗? mysql 或 ?
我不确定在这里问这个是否合适,但是网络上很少有关于 graphql-relay-js 的话题。
非常感谢,原谅我的不礼貌。

var PREFIX = 'arrayconnection:';
/**
 * Creates the cursor string from an offset.
*/
export function offsetToCursor(offset: number): ConnectionCursor {
    return base64(PREFIX + offset);
}

附加问题:
也许我从 developers.facebook.com/docs/graph-api.
得到了一些想法 似乎应该为分页查找做一个数组样式的缓存(对此不确定)。 但是 graph-api 看起来与 graphql-relay-js 有点不同(graph-api 仍然是旧 restful 风格的一部分吗?),
graph-api 和 graphql-relay-js 之间的关系是什么? graphql-relay-js 是在 facebook 中设计 graphql 服务器的通用设计指南吗? 非常感谢!请给我一些提示

Connection 是一种设计模式,如果您希望 Relay 执行高效的分页,您的模式可能会实现。它如何在后端实现是一个实现细节。它可能有类似数组的东西支持,也可能没有(想想 Facebook 上无限滚动的新闻提要,它由非常复杂的后端服务排名:这显然没有数组支持)。我们提供 arrayconnection.js 模块作为演示如何完成此操作的一种方式 如果 您的数据源具有类似数组的性质。如果没有,或者不能有效地转换成它,你最好从头开始实现。

游标是不透明的标识符。如果您使用的是数组源或典型的数据库后端(如 MySQL),则可以使用数组索引或某种主键,但同样,细节是特定于实现的,应该选择适合您的后端.唯一的要求是游标应该对服务器上需要的任何信息进行编码,以便能够 return 在该点之后(或之前)显示下一页结果。

graphql-relay-js 只是模块的集合,为在 JavaScript 中构建 Relay 兼容的 GraphQL 模式提供了一些帮助。该模式为您的数据提供了一个统一的接口,但实际的底层存储可以是您想要插入其中的任何东西(MySQL 数据库、内存中的对象、一些 REST 服务)。对于简单示例,请查看 the examples directory in the Relay repo. As an illustration of how you can put a schema in front of something that is not a traditional database, this 中的一个模式示例,它借助 Redis 中的索引和 memcached 中的缓存数据从 Git 存储库中读取数据。

远离developers.facebook.com/docs/graph-api; despite the "graph" in the name this is an entirely different thing and has nothing to do with the GraphQL中继使用的分层查询语言。