Search code examples
javascriptsortinggraphqlsql-order-by

How to do order by `createdAt` in my GraphQl query?


I want to return the oNewest posts to oldest.

This is my query:

export const getPosts = async () => {
  const query = gql `
    query MyQuery {
      postsConnection {
        edges {
          cursor
          node {
            author {
              bio
              name
              id
              photo {
                url
              }
            }
            createdAt
            slug
            title
            excerpt
            featuredImage {
              url
            }
            categories {
              name
              slug
            }
          }
        }
      }
    }
  `;
  const result = await request(graphqlAPI, query);

  return result.postsConnection.edges;
};

Solution

  • You can use the following syntax:

    postsConnection (sort: "createdAt:desc") {
    

    Full example:

    export const getPosts = async () => {
      const query = gql `
        query MyQuery {
          postsConnection (sort: "createdAt:desc") {
            edges {
              cursor
              node {
                author {
                  bio
                  name
                  id
                  photo {
                    url
                  }
                }
                createdAt
                slug
                title
                excerpt
                featuredImage {
                  url
                }
                categories {
                  name
                  slug
                }
              }
            }
          }
        }
      `;
      const result = await request(graphqlAPI, query);
    
      return result.postsConnection.edges;
    };