epsilon42
epsilon42

Reputation: 2023

GraphQL/Gatsby/Prismic - difference between 'edges.node.data' and 'nodes.data' in query

I'm following this tutorial on Medium to get Gatsby working with Prismic.

In the GraphiQL explorer, the two queries below both yield the same result and was wondering when I should use one over the other (i.e. edges.node.data vs nodes.data):

Query #1:

query Articles {
  articles: allPrismicArticle {
    edges {
      node {
        data {
          title {
            text
          }
          image {
            url
          }
          paragraph {
            html
          }
        }
      }
    }
  }
}

Query #2:

query Articles {
  articles: allPrismicArticle {
    nodes {
      data {
        title {
          text
        }
        image {
          url
        }
        paragraph {
          html
        }
      }
    }
  }
}

Upvotes: 14

Views: 2182

Answers (1)

Derek Nguyen
Derek Nguyen

Reputation: 11577

As you've found out, there's no difference at all. nodes can be thought of as a shortcut to edges.map(edge => edge.node). This'll save us a bit of typing when using the data returned by graphql.

There's a few case where querying edges is useful, for example in a allMarkdownRemark query, edges may contain helpful info like total posts.

Upvotes: 16

Related Questions