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
{ "op":"", //Operation to apply to content ["and", "or", "not"] "content":[] //List of Operation objects that the boolean operation will apply to }
OR
- Field Operation
that applies to a filter to Value Object
{ "op":"", //Operation to apply to content ["in", "<=", ">="] "content":{} //Value object specifying the field and list of values that the field must be "in" or "not-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:
{ "fieldName":"", //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¶
{
op: "and",
content: [
{
op: "or",
content: [
{
op: "in",
content: {
fieldName: "id",
value: ["id123"]
}
}
]
},
{
op: "in",
content: {
fieldName: "id",
value: ["id123"]
}
}
]
}