Weβre overhauling Dgraphβs docs to make them clearer and more approachable. If
you notice any issues during this transition or have suggestions, please
let us know.
Syntax Examples (using default values):
query title($name: string = "Bauman") { ... }
query title($age: int = "95") { ... }
query title($uids: string = "0x1") { ... }
query title($uids: string = "[0x1, 0x2, 0x3]") { ... }
. The value of the
variable is a quoted array.
Variables
can be defined and used in queries which helps in query reuse and
avoids costly string building in clients at runtime by passing a separate
variable map. A variable starts with a $
symbol. For HTTP requests with
GraphQL Variables, we must use Content-Type: application/json
header and pass
data with a JSON object containing query
and variables
.
curl -H "Content-Type: application/json" localhost:8080/query -XPOST -d $'{
"query": "query test($a: string) { test(func: eq(name, $a)) { \n uid \n name \n } }",
"variables": { "$a": "Alice" }
}' | python -m json.tool | less
$a: "5",
$b: "10",
$name: "Steven Spielberg"
query {
test($a: int, $b: int, $name: string) {
me(func: allofterms(name@en, $name)) {
name@en
director.film (first: $a, offset: $b) {
name @en genre(first: $a) { name@en }
}
}
}
}
- Variables can have default values. In the example below,
$a
has a default
value of 2
. Since the value for $a
isnβt provided in the variable map,
$a
takes on the default value.
- Variables whose type is suffixed with a
!
canβt have a default value but
must have a value as part of the variables map.
- The value of the variable must be parsable to the given type, if not, an error
is thrown.
- The variable types that are supported as of now are:
int
, float
, bool
and string
.
- Any variable thatβs being used must be declared in the named query clause in
the beginning.
$b: "10",
$name: "Steven Spielberg"
query {
test($a: int = 2, $b: int!, $name: string) {
me(func: allofterms(name@en, $name)) {
director.film (first: $a, offset: $b) { genre(first: $a) { name@en } }
}
}
}
You can also use array with GraphQL Variables.
$b: "10",
$aName: "Steven Spielberg",
$bName: "Quentin Tarantino"
query {
test($a: int = 2, $b: int!, $aName: string, $bName: string) {
me(func: eq(name@en, [$aName, $bName])) {
director.film (first: $a, offset: $b) { genre(first: $a) { name@en } }
}
}
}
We also support variable substitution in facets.
$name: "Alice",
$IsClose: "true"
query {
test($name: string = "Alice", $IsClose: string = "true") {
data(func: eq(name, $name)) {
friend @facets(eq(close, $IsClose)) { name }
colleague : friend @facets(eq(close, false)) { name }
}
}
}
If you want to input a list of UIDs as a GraphQL variable value, you can have
the variable as string type and have the value surrounded by square brackets
like ["13", "14"]
.
Responses are generated using AI and may contain mistakes.