1
3
GraphQL不直接从数据库获取数据。GraphQL实现是通过一个端点公开的,该端点与任何其他端点都没有区别,这意味着您可以使用您想要的任何中间件、身份验证堆栈、验证等。它的数据库也不可知。同样,你可以使用任何你想要的数据库,ORM等的组合。
不完全是。GraphQL实现有两个主要部分-模式和解析器。模式简单地定义了数据的形状,解析器完成了繁重的工作。解析器是定义如何获取和转换模式中定义的每个字段的数据的逻辑层。更多关于分解器如下。
我们正在获取一个用户、该用户的项目以及每个项目的资产,我们可以精确地指定在每个级别需要哪些字段。一个用户可能有15个字段,但我们可能只需要其中的两个或三个。项目和资产也可能如此。由于GraphQL解析器是智能的,所以我们不必担心在任何给定查询中实际请求了哪些字段。只返回作为查询一部分请求的字段。如果一个字段是通过一个异步函数解析的,那么只有在请求该字段时才会执行该函数。 最后,客户机返回与查询形状匹配的JSON,但是(我希望)我们永远不会在NoSQL数据库中存储这样的嵌套数据。还有一些工具,如 dataloader 这使得通过批处理和缓存优化查询更加容易。
从上面可以看出,情况并非如此。 |
ZPeto · Couchbase实现语言 6 年前 |
cfitzarl · Cassandra-按ID分组和按日期排序 6 年前 |
websanya · MongoDB中对象数组内的多个对象数组 6 年前 |
timelfelt · 父属性上的Mongodb聚合筛选器查找 6 年前 |
Lord Djaz · 来自多个SQL表的NoSQL中的数据模型 6 年前 |