Fauna Query Language (FQL)

Fauna Query Language (FQL)

The Fauna Query Language (FQL) is the native API for querying FaunaDB. This section provides reference documentation for FQL’s data types and functions.

While not a general-purpose programming language, it provides much of the functionality expected from one. It allows for complex, precise manipulation and retrieval of data stored within FaunaDB.

The language is expression-oriented: all functions, control structures, and literal return values. So it is easy, for example, to group multiple results together by combining them into an Array or Object, or map over a collection and compute a result—​possibly fetching more data—​for each member.

FQL operates primarily on the schema types provided by FaunaDB, which include documents, collections, indexes, sets, and databases.

A query is executed by submitting it to a FaunaDB cluster, which computes and returns the result. Query execution is transactional: No changes are committed if something goes wrong. If a query fails, an error response is returned instead of a result.

FQL syntax varies with each supported language, as each language-specific driver provides an API that embeds itself into the host language, to make it easier to include local data structures in queries, and for processing query results.

When there are language-specific alternatives for the example queries, use the language switcher at the top of the page to view queries and responses in the selected language.