Функции
Функции XQuery
Функции | Описание |
---|---|
true() | Возвращает true. |
false() | Возвращает false. |
null() | Возвращает null. |
contains() | Проверяет что строка содержит в себе другую строку. |
doc-contains() | Полнотекстовый поиск в базе данных. |
МatchSome() | Возвращает true, если элемент или последовательность элементов, указанных в arg1, пересекается с элементом или последовательностью, указанной в arg, в противном случае возвращается false. |
date() | Преобразует строку в качестве аргумента в объект типа Date. |
catalogHierSubset() | Возвращает фрагмент иерархии таблицы, начиная с конкретного узла. |
Непроверенные функции XQuery
Функции | Описание |
---|---|
hier() | Обозначает сортировку с учетом иерархии результатов запроса XQuery к таблице. |
isHierChild() | Проверяет что заданная запись в таблице лежит ниже по иерархии определенной базовой записи с заданным ID. |
isHierChildOrSelf() | Проверяет, что заданная запись в таблице лежит ниже по иерархии определенной базовой записи с заданным ID, либо совпадает с базовой записью. |
foreignElem() | Аналог атрибута ForeignElem для XQuery. Возвращает целевой объект. |
foreignDispName() | Аналог атрибута ForeignDispName для XQuery. Возвращает Первичное отображаемое имя целевого объекта. |
true()
Возвращает значение true. Функция обычно используется в качестве константы (литерала), поскольку константы типа Boolean в XQuery отсутствуют.
Аргументы:
нет аргументов
Результат:
Boolean
Пример:
// Получить записи где is_dynamic = true
arr = XQuery("for $elem in groups where $elem/is_dynamic=true() return $elem");
false()
Возвращает значение false. Функция обычно используется в качестве константы (литерала), поскольку константы типа Boolean в XQuery отсутствуют.
Аргументы:
нет аргументов
Результат:
Boolean
Пример:
// Получить записи где is_dynamic = false
arr = XQuery("for $elem in groups where $elem/is_dynamic=false() return $elem");
null()
Возвращает значение null. Функция обычно используется в качестве константы (литерала), поскольку константы типа null в XQuery отсутствуют.
Аргументы:
нет аргументов
Пример:
// Получить записи где phone = null
arr = XQuery("for $elem in collaborators where $elem/phone=null() return $elem");
contains()
Проверяет, что строка содержит внутри себя другую строку. Регистр игнорируется.
Функцию следует использовать с осторожностью, поскольку ее выполнении не оптимизируется индексами на встроенной СУБД.
Аргументы:
arg1 - String
arg2 - подстрока (String)
Result:
Boolean
Пример:
// Получить записи в которых поле position_name содержит в себе подстроку 'engineer'
arr = XQuery('for $elem in collaborators where contains($elem/position_name, 'engineer') return $elem');
doc-contains()
Функция полнотекстового поиска в базе.
Аргументы:
arg1 - ID объекта ($elem/id)
arg2 - имя базы данных
arg3 - строка поиска (String)
arg4 - имя таблицы (в старой объектной модели не используется)
Результат:
Boolean
Пример:
// Получить записи где настраиваемое поле specialcell = true
arr = XQuery("for $elem in collaborators where doc-contains($elem/id,'wt_data','[specialcell = true]','collaborators') return $elem");
МatchSome()
Выдает True, если элемент, или последовательность из элементов, указанная в arg1, пересекается с элементом или последовательностью, указанной в arg2, и false в обратном случае.
Аргументы:
arg1 = элемент или последовательнось элементов
arg2 = элемент или последовательнось элементов
Результат:
Boolean
Пример:
// Получить записи где поле phone = null
arr = XQuery("for $elem in candidates where MatchSome($elem/profession_id, (5618059798961344771,2918050598961344456)) return $elem");
date()
Преобразует аргумент типа String в результат типа Date. Функция обычно используется в качестве константы (литерала), поскольку константы типа Date в XQuery отсутствуют.
Аргументы:
arg1 - must be in the format YYYY-MM-DD or YYYY-MM-DDTHH:MM:SS (String)
Результат:
Date
Пример:
// Получить записи где поле last_usage_date > 2014-05-21
arr = XQuery("for $elem in learnings where $elem/last_usage_date>date('2014-05-21') return $elem");
catalogHierSubset()
Возвращает фрагмент иерархии каталога, начиная с определенного узла. (эта функция является устаревшей, вместо нее рекомендуется использовать isHierChild())
Аргументы:
arg1 = название таблицы (String)
arg2 = ID базового элемента (Integer)
Результат:
Object
Пример:
// Получить записи где subdivision с id=5738217100911837999 является родительским (выводит все записи находящиеся ниже по иерархии)
arr = XQuery("catalogHierSubset('subdivisions', 5738217100911837999)");
isHierChild()
Псевдо-функция, проверяющая, что заданная запись в иерархическом каталоге лежит ниже по иерархии определенной базовой записи с заданным ID.
Функция может вызваться строго в определенном месте с определенным синтаксисом. Без order by $elem/Hier()
работать не будет.
Аргументы:
arg1 - всегда конструкция вида $elem/id
arg2 - ID базового элемента (Integer)
Результат:
Boolean
Пример:
// Получить записи где подразделения лежат ниже по иерархии чем подразделение с id = 5618059798961344793
arr = tools.xquery('for $elem in subdivisions where IsHierChild($elem/id, 5618059798961344793) order by $elem/Hier() return $elem');