【问题标题】:How to sort data in graphQl with apollo server?如何使用 apollo 服务器对 graphQl 中的数据进行排序?
【发布时间】:2019-11-04 03:55:07
【问题描述】:

我使用 apollo-server 编写了一个 graphql 代码。在发送数据之前,我想根据可选字段和过滤器对数据进行某种排序,并且我需要知道编写代码的正确方法? graphql 中是否有一种方法可以自动对我的数据进行排序?

我使用lodash 进行排序,我认为它们没有优化 在我搜索之后 我看到了prisma,但我的数据是由另一个不在数据库中的 api 返回的。 我需要棱镜之类的东西。

我的代码是这样的 我想在查询中根据姓名或姓氏对书籍进行排序 但在由 api 返回的真实书籍对象中。

const { ApolloServer, gql, } = require('apollo-server');

const books = [
{
    title: 'Harry Potter and the Chamber of Secrets',
    authors: [{"name":"a1", "lastName":"aa1"},{"name":"b1", "lastName":"bb1"},{"name":"c1", "lastName":"cc1"}]
  },
  {
    title: 'Jurassic Park',
    authors: [{"name":"a" ,"lastName":"aa"},{"name":"b", "lastName":"bb"},{"name":"c", "lastName":"cc"}]
  },
];
const typeDefs = gql`

type Book {
    title: String
    authors: [Author]
  }
type Query{
    books: [Book]
  }
type Author{
name: String
lastName: String
}
  `;
const resolvers = {
  Query: 
  {
    books: () => books,
// in real this book return by an api !

  },
};
const server = new ApolloServer({ typeDefs, resolvers });

server.listen({port: 3002, path: '/graphql'}).then(({ url }) => {
  console.log(`????  Server ready at ${url}`);
});

graphql中有函数吗?

【问题讨论】:

  • 在客户端还是服务器端排序更好?

标签: node.js sorting apollo graphql-js


【解决方案1】:

不,无法单独使用 graphql 进行排序、排序或进行任何过滤。您需要自己或使用 ORM 实现排序(创建一个执行此操作的方法),然后将该逻辑挂钩到解析器上,该解析器将执行您提供的解析器方法。

【讨论】:

    猜你喜欢
    • 2021-03-28
    • 2018-02-23
    • 2018-03-05
    • 1970-01-01
    • 2017-11-29
    • 1970-01-01
    • 2021-05-01
    • 2019-09-24
    • 2019-05-26
    相关资源
    最近更新 更多