Syntax Overview
FlyQL queries consist of one or more conditions connected by boolean operators (and, or, not). Each condition is either a comparison or a truthy check.
Basic Query Structure
Section titled “Basic Query Structure”status=200 and active and not archivedstatus=200—statusfield equals200active—activefield has a truthy valuenot archived—archivedfield is falsy (null, empty, zero, or false)
More Examples
Section titled “More Examples”service!=api or user="john doe"message~"error.*" and not debug(a=1 or b=2) and not (c=3 and d=4)status in [200, 201] and method not in ['DELETE', 'PUT']message has 'error' and tags not has 'debug'General Rules
Section titled “General Rules”- Standalone keys — A key without an operator is treated as a truthy check
- Comparisons — A key with an operator must have a corresponding value
- Whitespace — Spaces around operators are allowed:
status=200andstatus = 200are equivalent - Operator precedence —
andbinds tighter thanor:a=1 or b=2 and c=3is parsed asa=1 or (b=2 and c=3) - Parentheses — Use
(and)to override precedence and group conditions explicitly
Syntax Sections
Section titled “Syntax Sections”- Operators — Comparison operators (
=,!=,>,>=,<,<=) - Boolean Logic —
and,or,not, precedence, grouping - Pattern Matching — Regex (
~,!~) and wildcard (*) matching - Lists —
inandnot inwith list values - Containment —
hasandnot hasfor substring, key existence, and item membership - Values & Expressions — Truthy/falsy, quoted strings, numbers
- Nested Keys — Dot-separated paths and quoted key segments