SQON Filters¶
Arranger uses a custom JSON object format for filtering that is called SQON (Serializable Query Object Notation, pronounced like “Scone”). SQON provides a flexible system for combining many different filters.
A SQON object consists of nested objects of two types: Operations and Values.
- Operation objects apply boolean logic to a list of operation objects. They are of the form:
- Combination Operation (aka, Boolean Operation)
which groups one or more filters
{ "content":[] // List of Operation objects that the boolean operation will apply to "op":"", // Operation to apply to content ["and", "or", "not"] }
OR
- Field Operation
that applies to a filter to Value Object
{ "content":{} // Value object specifying the field and list of values that the field must be "in" or "not-in" "op":"", // Operation to apply to content ["in", "<=", ">="] }
- Value objects
specify a list the field name and values for it that the wrapping . This filter can specify to include or exclude fields with any of the listed values. It will have the following format:
{ "field":"", // name of the field this operation applies to "value":[] // List of values for the field if using the "in" operation, or a scalar value for ">=" and "<=" operations }
The top level of a SQON must always be a Combination Operation, even if only a single filter is being applied.
Sample¶
{
content: [
{
content: [
{
content: {
field: "id",
value: [
"id123"
]
},
op: "in"
}
],
op: "or"
},
{
content: {
field: "id",
value: [
"id123"
]
},
op: "in"
}
],
op: "and"
}