Query Guide Enhanced
LIKE queries are TBD
Query Types
Iteration: Queries can be iterated over with query types being added as root keys in any order or quantity.
example: {simple, $like, $not} → {"field1" : "value1"
, "field1" : {"$like" : "value1"},"field1" : {"$not" : "value1"}
}
Query joins: By default all query types are joined with an AND.
simple - queries a field containing a value
{"field1" : "value1", "field2" : "value2"}
sql example: Where field1
= "value1"
AND "field2"
= value2
{"field1" : "value1", "field2:or" : "value2"}
sql example: Where field1
= "value1"
OR "field2"
= value2
$like - queries a field containing a like value. Values are searched by the LIKE condition. LIKE condition is case insensitive and will match any string/number containing the searched for value.
{"field1" : {"$like" : "value1"}, "field2" : {"$like" : "value2"}}
sql example: WHERE x.field1 LIKE "%value1%" AND field2 LIKE "%value2%"
sql example: WHERE x.field1 LIKE "%value1%" OR field2 LIKE "%value2%"
$not - queries a field not containing a value.
sql example: WHERE field1
!= "value1
" AND field2
!= "value2
"
$in - queries a field containing multiple values. ANY condition must be true.
sql example: WHERE field1
IN ("value1"
,"value2"
) AND field2
IN ("value21"
, "value22"
)
$nin - (not in) queries a field not containing multiple values. ALL conditions must be true.
sql example: WHERE field1
NOT IN ("value1"
,"value2"
) AND field2
NOT IN ("value21"
, "value22"
)
$or - queries multiple fields containing multiple values. ANY condition must be true.
- may include an array of values
- sql example Where field1 = "value1"
OR "field2"
IN ("value1", "value2", "value3"
)
$and - queries multiple fields containing multiple values. ALL conditions must be true.
- may include an array of values (these inner values will match on OR conditions for ex: Where field IN ("value1", "value2", "value3"
))
- sql example Where field1
= "value1"
AND "field2"
IN ("value1", "value2", "value3"
)
$and:like - queries multiple fields containing multiple values. ALL conditions must be true. Values are searched by the LIKE condition. LIKE condition is case insensitive and will match any string/number containing the searched for value.
sql example Where field1
LIKE "%value1%"
AND "field2"
IN ("value1", "value2", "value3"
)
$table.field - queries joined data fields for multiple values. ALL conditions must be true.
$table.field:like - queries joined data fields for multiple values. ALL conditions must be true. Values are searched by the LIKE condition. LIKE condition is case insensitive and will match any string/number containing the searched for value.
$table.field - MULTIPLE VALUES - Executes like other table.field queries but will return all results exactly matching any of the given values. Executes like sql IN(value1,value2,value3)
$table.field:like - MULTIPLE VALUES - Executes like other table.field queries but will return all results including any of the given values. Executes a sql regex expression.
$area queries are only available for services and services/complete endpoints
$area - queries services that exist within geographical areas.
$area:like - queries services that exist within geographical areas. It will match on any LIKE area ‘name’ value.
$area - $table.field - queries services that exist within geographical areas. $table.field is an optional search parameter that allows added filtering by taxonomy terms. This can be used with area:like as well.
$area - $table.field:like - queries services that exist within geographical areas. $table.field is an optional search parameter that allows added filtering by taxonomy terms. This can be used with area:like as well.
$area - $in - queries services that exist within geographical areas. $table.field is an optional search parameter that allows added filtering by taxonomy terms. This can be used with area:like as well.
$area - $in:like - queries services that exist within geographical areas. $table.field is an optional search parameter that allows added filtering by taxonomy terms. This can be used with area:like as well.
distance_info - this is a subquery of $table.field, $table.field:like, $area, $area:like
This query is only available for services/complete
This will return distance information of the services location relative to the center of the input location
the distance_info accepts three options.
{“type“:”city”, ”name”:”detroit”}
{“type“:”zipcode”, ”name”:”49999”}
{“lat“:”44.99999”, ”lng”:”-82.99999”}
distance_info for table.field queries.
distance_info for area queries.
viable queries: