Filters (filters and id)
Filters are used to receive, edit or delete objects.
Id is used to receive, edit or delete an object.
Filters parameter structure
filters is an array of fieldFilter filter objects.
A filter has the following properties:
- fieldFilter.name - field name
- fieldFilter.operator - comparison operator
- fieldFilter.values - array of filter values
fieldFilter.values is always an array, including the comparison operators with a single fieldFilter
value (e.g. EQUALS)
{"filters":[{"name": /* Field name (string) */", "operator": /* Comparison operator (string) */", "values":[ /* Filter values */ ]}, /*...*/]}
Filter values
fieldFilter.values can contain integers, strings and field values.
To add a field as a filter value, use the following format: "Field:{Field_name}".
Do not use the BETWEEN, REGEXP, and NOT_REGEXP operators when comparing a field to the other fields.
Do not use the BETWEEN, REGEXP, and NOT_REGEXP operators when comparing a field to the other fields.
Available comparison operators
Operator | Comparison description | Function |
---|---|---|
EQUALS | equal to the specified value | = |
NOT_EQUALS | not equal to the specified value | != |
IN | exists among the specified values | IN() |
NOT_IN | doesn't exist among the specified values | NOT IN() |
GREATER_THAN | greater than the specified value | > |
GREATER_THAN_EQUALS | greater than or equal to the specified value | >= |
LESS_THAN | less than the specified value | < |
LESS_THAN_EQUALS | less than or equal to the specified value | <= |
BETWEEN |
between values 1 and 2. You can add a series of intervals:values = [10,20,50,100]; // 10..20 or 50..100 |
BETWEEN |
STARTS_WITH | starts with the specified value | LIKE '%_' |
CONTAINS | contains a substring with the specified value | LIKE '%_%' |
DOES_NOT_CONTAIN | doesn't contain a substring with the specified value | NOT LIKE '%_%' |
REGEXP | regular expression matching the specified value | REGEXP() |
NOT_REGEXP | regular expression excluding the specified value | NOT REGEXP() |
IS_NULL | field set to null | IS NULL |
IS_NOT_NULL | field isn't set to null | IS NOT null |
id parameter
Please note that an id parameter passed in the request is added to the filters as:
{"name":"id", "operator":"EQUALS", "values":["{Parameter_value_id}"]}
So, id parameter is a short form of the filter by id.
We recommend using this parameter to edit a single object.
Examples
To get tag numbers in the example, we use the fields parameter.
In the example below, we'll get a list of keywords added to NN project with the tag 2 or 3.
Request
POST /v2/json/get/keywords_2/keywords/
{"project_id": /* project id (int) */,"fields":["id","name","tags"]}
Result
{"result":[{"id":"80764821","name":"test keyword 1","tags":"2"},{"id":"80764822","name":"test keyword 2","tags":"2"},{"id":"80764823","name":"test keyword 3","tags":"3"},{"id":"80764824","name":"test keyword 4","tags":"4"},{"id":"80764825","name":"test keyword 5","tags":"5"}]}
Request
POST /v2/json/get/keywords_2/keywords/
{"project_id": /* project id (int) */,"fields":["id","name","tags"],"filters":[{"name":"tags","operator":"IN","values":[2,3]}]}
Result
{"result":[{"id":"80764821","name":"test keyword 1","tags":"2"},{"id":"80764822","name":"test keyword 2","tags":"2"},{"id":"80764823","name":"test keyword 3","tags":"3"}]}
Request
POST /v2/json/get/keywords_2/keywords/
{"project_id": /* project id (int) */,"fields":["id","name","tags"],"id":80764821}
Result
{"result":[{"id":"80764821","name":"test keyword 1","tags":"2"}]}
SDK example
In the example below, we'll get a list of keywords added to the NN project with the tags 2 or 3.
<?php $projectId = '%NN%'; // ID of your project $TVSession = new TVSession(); $selectorKeywords = new TVPen($TVSession, 'get', 'keywords_2', 'keywords'); $selectorKeywords->setFields(['id', 'name', 'tags']); $selectorKeywords->setData(['project_id' => $project_id]); $selectorKeywords->setFilters([ TVFields::genFilterData('tags', 'IN', [2, 3]) ]); $page = $selectorKeywords->exec(); if(is_null($page->getResult())) return var_dump($page->getErrors()); // $page - array of keywords foreach($page->getResult() as $resultItem){ var_dump($resultItem); }