Queries describe graphs

Dgraph query results are graphs. In fact, the result structure matches the query structure.

The braces edge_name { ... } in the query signify nested blocks where the edges inside the block are matched against nodes found by following the edge that begins the block. We continue nesting the query as we follow edges from node to node.

While not strictly required, it’s a good style to indent the query.

Compare the JSON result to the structure of the query and note, for example, that the friend edge matched a number of nodes and each is represented in the JSON.

Something to try: How about Michael’s friends’ pets, or Michael’s friends’ friends.

The idea is to formulate the query as a traversal through the graph, following edges to the desired data. The uid’s in the JSON output allow interpretation as a graph rather than a tree. See, for example, the cycles in Michael’s friends’ friends.

Endpoint: /query