Native Queries
Introduction
Native Queries allow you to run custom aggregation pipelines on your MongoDB database. This allows you to run queries that are not supported by Hasura's GraphQL engine.
Setup
Native Queries can be defined by
- Adding a
native_queries
directory if one doesn't already exist in your connector configuration directory - Adding a .json file following the syntax laid out in the following sections.
Native Queries can take arguments using the "{{argument_name}}"
syntax. Arguments must be specified along with their
type.
Example
Here's an example of simple "hello"
Native Query:
Configuration
{
"name": "hello",
"representation": "function",
"description": "Basic test of native queries",
"arguments": {
"name": { "type": { "scalar": "string" } }
},
"resultDocumentType": "Hello",
"objectTypes": {
"Hello": {
"fields": {
"__value": { "type": { "scalar": "string" } }
}
}
},
"pipeline": [
{
"$documents": [
{
"__value": "{{ name }}"
}
]
}
]
}
This will create a query called "hello"
which takes a single argument called "name"
of type string
. The query will
return an object with the key "__value"
and the value of the argument "hello"
.
Valid Native Query syntax
Check out our page on writing valid Hasura DDN Native Operations syntax.
Usage
With the example above, you can then use the query in your GraphQL API like this:
query MyQuery {
hello(name: "world") {
__value
}
}