Skip to content

Latest commit

 

History

History
49 lines (37 loc) · 1.57 KB

path-queries-in-graphql.md

File metadata and controls

49 lines (37 loc) · 1.57 KB
description
How to do path queries on TerminusDB and TerminusCMS data products using GraphQL

Path Queries in GraphQL

{% hint style="info" %} To use this How-To, first clone the Star Wars demo into your team on TerminusCMS. You will then have full access to the data needed for this tutorial {% endhint %}

Using a Path Query

Sometimes we want to search for links that are not immediate, but need to follow a chain of links to get the object of interest. TerminusCMS gives us path queries which allow us to succinctly express this.

We can find a path in GraphQL by using the _path_to_CLASS query, where CLASS is the name of one of our classes. One path should be populated for each of the available classes.

To find everyone who was in a film with Chewbacca, we can write:

query{
   People(filter:{label:{eq:"Chewbacca"}}){
     label
     _path_to_People(path:"film,<film"){
       label
    }
  }
}

The film is the current film at which the Chewbacca object points at. Then <film means follow backwards to people in the film field.

This process can be repeated to find second-order connections, as follows:

query{
   People(filter:{label:{eq:"Chewbacca"}}){
     label
     _path_to_People(path:"(film,<film){1,2}"){
       label
    }
  }
}

This says that we should repeat the process one or two times before terminating.

More complex patterns can be built using the full path query syntax described in our documentation.