如何使用 apollo 服务器对 graphQl 中的数据进行排序?
How to sort data in graphQl with apollo server?
我用apollo-server写了一段graphql代码。在发送数据之前,我想根据可选字段和过滤器对数据进行某种排序,我需要知道编写代码的正确方法?
graphql 有自动排序数据的方法吗?
我使用 lodash 进行排序,我认为它们没有优化
在我搜索之后
我看到 prisma 但我的数据是由另一个不在数据库中的 api 返回的。
我需要 prisma 之类的东西。
我的代码是这样的
我想在查询中根据姓名或姓氏对书籍进行排序
但在 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中有函数吗?
不,无法单独使用 graphql 进行排序、排序或进行任何过滤。您需要自己或使用 ORM 实现排序(创建一个执行该操作的方法),然后将该逻辑挂接到将执行您提供的解析器方法的解析器上。
我用apollo-server写了一段graphql代码。在发送数据之前,我想根据可选字段和过滤器对数据进行某种排序,我需要知道编写代码的正确方法? graphql 有自动排序数据的方法吗?
我使用 lodash 进行排序,我认为它们没有优化 在我搜索之后 我看到 prisma 但我的数据是由另一个不在数据库中的 api 返回的。 我需要 prisma 之类的东西。
我的代码是这样的 我想在查询中根据姓名或姓氏对书籍进行排序 但在 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中有函数吗?
不,无法单独使用 graphql 进行排序、排序或进行任何过滤。您需要自己或使用 ORM 实现排序(创建一个执行该操作的方法),然后将该逻辑挂接到将执行您提供的解析器方法的解析器上。