Ask a Question

Overview

How to use queries to fetch data from Dgraph.

Dgraph automatically generates GraphQL queries for each type that you define in your schema. There are three types of queries generated for each type.

Example

type Post {
    id: ID!
    title: String! @search
    text: String
    score: Float @search
    completed: Boolean @search
    datePublished: DateTime @search(by: [year])
    author: Author!
}

type Author {
    id: ID!
    name: String! @search
    posts: [Post!]
    friends: [Author]
}

With the above schema, there would be three queries generated for Post and three for Author. Here are the queries that are generated for the Post type:

getPost(postID: ID!): Post
queryPost(filter: PostFilter, order: PostOrder, first: Int, offset: Int): [Post]
aggregatePost(filter: PostFilter): PostAggregateResult

The first query allows you to fetch a post and its related fields given an ID. The second query allows you to fetch a list of posts based on some filters, sorting and pagination parameters. The third query allows you to fetch aggregate parameters like count of nodes based on filters.

Additionally, a check<Type>Password query is generated for types that have been specified with a @secret directive.

You can look at all the queries that are generated by using any GraphQL client such as Insomnia or GraphQL playground.