当前位置: 首页 > 工具软件 > ArangoDB > 使用案例 >

ArangoDB数据库——AQL常用函数(一)

金坚
2023-12-01

类型转换函数

TO_BOOL()

TO_BOOL(value) →bool

value(any): 任意类型输入参数

returnsbool(boolean):

null不能转换

Numbers可以转换,0为false

Strings非空为true,否则为false

Arrays非空为true,否则为false

Objects/documents通常转换为true

也可以使用双重否定进行转换

TO_NUMBER()

TO_NUMBER(value)→number

value(any): 任意类型输入参数

returnsnumber(number):

null和false转换为0

true转换为1

Numbers为其原始值

Strigngs 如果字符串包含数字的有效表示,则将字符串转换为数字等价。在字符串的开始和结束时允许空白。不包含任何有效数字表示的字符串值将被转换为数字0。

Array 空Array转换为0,包含多个元素的Array转换为0,包含一个元素的Array正常转换

Object/document转换为0

TO_STRING()

TO_STRING(value)→str

value(any): 任意类型输入参数

returnsstr(string):

null转换为空串

bool转换为 ‘false' 或'true'

Numbers转换为string形式,或者科学计数法

Arrays/objects/documents转换为json格式

TO_ARRAY()

TO_ARRAY(value)→array

value(any): 任意类型输入参数

returnsarray(array):

null转换为空array

boolean/numbers/strings转换为有一个元素的array

Arrays保持原样

Objects/documents 将属性值作为数组元素

TO_LIST()

TO_LIST(value)→array

TO_ARRAY()的别名。

类型检查

IS_NULL(value)→bool: 检查参数是否为null

IS_BOOL(value)→bool: 检查参数是否为boolean

IS_NUMBER(value)→bool: 检查参数是否为数值

IS_STRING(value)→bool: 检查参数是否是字符串

IS_ARRAY(value)→bool: 检查参数是否是array

IS_LIST(value)→bool: 检查参数是否是array

IS_OBJECT(value)→bool: 检查参数是否是 object/documentvalue

IS_DOCUMENT(value)→bool: IS_OBJECT的别名

IS_DATESTRING(value)→bool: 检查参数是否是一个日期字符串

字符串函数

CHAR_LENGTH()

CHAR_LENGTH(value)→length

String/Number/Array/Object 返回字符长度

true4

false5

null0

CONCAT()

CONCAT(value1,value2,...valueN)→str

values(any,repeatable): 至少一个任意类型数值

returnsstr(string): 数据的拼接.null将被忽略.

eg:CONCAT("foo","bar","baz")//"foobarbaz"

CONCAT(1,2,3)//"123"

CONCAT("foo",[5,6],{bar:"baz"}) //"foo[5,6]{\"bar\":\"baz\"}"

CONCAT_SEPARATOR()

CONCAT_SEPARATOR(separator,value1,value2,...valueN)→joinedString

separator(string):分隔符

values(string|array,repeatable): 需要拼接的参数

returnsjoinedString(string):拼接后的数据.

eg:CONCAT_SEPARATOR(",","foo","bar","baz") //"foo,bar,baz"

CONCAT_SEPARATOR(",",["foo","bar","baz"] ) //"foo,bar,baz"

CONTAINS()

CONTAINS(text,search,returnIndex)→match

text(string): 原始字符串

search(string): 查询的字符串

returnIndex(bool,optional):如果设置为true,将返回子串在字符串中第一次出现的位置

returnsmatch(bool|number):返回true,false 或者 number

eg:CONTAINS("foobarbaz","bar") //true

CONTAINS("foobarbaz","horse") //false

CONTAINS("foobarbaz","ba",true) //3

CONTAINS("foobarbaz","horse",true) // -1

查询一个元素在数组中的位置使用POSITION().

COUNT()为LENGTH()函数别名。

LENGTH()

LENGTH(str)→length

str(string):字符串,如果是number将先转换为字符串

returnslength(number):字符串长度

eg:LENGTH("foobar")//6

LENGTH("" )//4

LENGTH()也可以获取array元素个数,object的keys数量/collection中document的数量

FIND_FIRST()

FIND_FIRST(text,search,start,end)→position

Return字符串第一次出现的位置。

text(string): 源字符串

search(string): 查询的字符串

start(number,optional):开始查找的位置

end(number,optional):结束查找的位置

returnsposition(number):返回-1 或者是字符串出现的位置

eg:FIND_FIRST("foobarbaz","ba") //3

FIND_FIRST("foobarbaz","ba",4) //6

FIND_FIRST("foobarbaz","ba",0,3) //-1

FIND_LAST()

FIND_LAST(text,search,start,end)→position

Return返回最后一次出现search的位置

text(string): 源字符串

search(string): 查询的字符串

start(number,optional):开始查找的位置

end(number,optional):结束查找的位置

returnsposition(number):返回-1 或者是字符串出现的位置.

eg:FIND_LAST("foobarbaz","ba") //6

FIND_LAST("foobarbaz","ba",7) //-1

FIND_LAST("foobarbaz","ba",0,4)//3

JSON_PARSE()

JSON_PARSE(text)→value

text(string): 将转换为json的参数

returnsvalue(mixed):与给定的JSON文本对应的值。对于没有有效JSON字符串的输入值,函数将返回NULL。

eg:JSON_PARSE("123")//123

JSON_PARSE("[true,false,2]")//[true,false,2]

JSON_PARSE("\\\"abc\\\"")//"abc"

JSON_PARSE("{\\\"a\\\":1}")//{a:1}

JSON_PARSE("abc")//null

JSON_STRINGIFY()

JSON_STRINGIFY(value)→text

value(mixed):待转换为json字符串的参数

returnstext(string):返回json,对于没法转换的value将转换为null.

eg:JSON_STRINGIFY("1")//"1"

JSON_STRINGIFY("abc")//"\"abc\""

JSON_STRINGIFY("[1,2,3]")//"[1,2,3]"

LEFT()

LEFT(value,length)→substring

value(string):待截取的字符串

length(number):截取长度

returnssubstring(string): 返回满足条件的字符串

eg:LEFT("foobar",3)//"foo"

LEFT("foobar",10)//"foobar"

LIKE()

LIKE(text,search,caseInsensitive)→bool

text(string):源字符串

search(string):待匹配字符串,可以包含% _ 等进行正则匹配

caseInsensitive(bool,optional):true不区分大小写,默认为false

returnsbool(bool):匹配到为true,否则为false

eg:LIKE("cart","ca_t")//true

LIKE("carrot","ca_t")//false

LIKE("carrot","ca%t")//true

LIKE("foobarbaz","bar") //false

LIKE("foobarbaz","%bar%")//true

LIKE("bar","%bar%")//true

LIKE("FoObArBaZ","fOo%bAz") //false

LIKE("FoObArBaZ","fOo%bAz",true) //true

LOWER()

LOWER(value)→lowerCaseString

value(string): 待转换为小写的字符串参数

returnslowerCaseString(string): 返回字符串参数的小写形式

LTRIM()

LTRIM(value,chars)→strippedString

value(string):源字符串.

chars(string,optional):待移除的字符串.

returnsstrippedString(string):返回去掉左侧空格或满足chars的字符串

eg:LTRIM("foobar") //"foobar"

LTRIM("foobar")//"foobar"

LTRIM("--==[foo-bar]==--","-=[]") //"foo-bar]==--"

MD5()

MD5(text)→hash

text(string): 待加密字符串

returnshash(string):md5加密后的字符串

eg:MD5("foobar") //"3858f62230ac3c915f300c664312c63f"

RANDOM_TOKEN()

RANDOM_TOKEN(length)→randomString

length(number):随机字符串长度

returnsrandomString(string):返回一个随机的字符串

eg:RANDOM_TOKEN(8)//"zGl09z42"

RANDOM_TOKEN(8)//"m9w50Ft9"

REGEX_TEST()

REGEX_TEST(text,search,caseInsensitive)→bool

text(string): 源字符串

search(string):正则表达式

caseInsensitive: true不区分大小写

returnsbool(bool):true或false

eg:REGEX_TEST("thequickbrownfox","the.*fox")//true

REGEX_TEST("thequickbrownfox","^(a|the)\s+(quick|slow).*f.x$")//true

REGEX_TEST("the\nquick\nbrown\nfox","^the(\n[a-w]+)+\nfox$")//true

REGEX_REPLACE()

REGEX_REPLACE(text,search,replacement,caseInsensitive)→string

text(string):源字符串

search(string):正则表达式

replacement(string):替代的字符串

returnsstring(string): 返回替换后的字符串

eg:REGEX_REPLACE("thequickbrownfox","the.*fox","jumpedover")//jumpedover REGEX_REPLACE("thequickbrownfox","o","i")//thequickbriwnfix

REVERSE()

REVERSE(value)→reversedString

value(string):字符串参数

returnsreversedString(string): 字符顺序反转后的字符串

eg:REVERSE("foobar")//"raboof"

REVERSE("" )//""

RIGHT()

RIGHT(value,length)→substring

value(string):源字符串

length(number):截取长度

returnssubstring(string):满足条件的字符串

eg:RIGHT("foobar",3)//"bar"

RIGHT("foobar",10)//"foobar"

RTRIM()

RTRIM(value,chars)→strippedString

value(string):源字符串

chars(string,optional):待删除的字符串.

returnsstrippedString(string): 去掉chars后的字符串

eg:RTRIM("foobar")//"foobar"

RTRIM("foobar")//"foobar"

RTRIM("--==[foo-bar]==--","-=[]")//"--==[foo-bar"

SHA1()

SHA1(text)→hash

text(string): 字符串参数

returnshash(string):SHA1字符串

eg:SHA1("foobar")//"8843d7f92416211de9ebb963ff4ce28125932878

SPLIT()

SPLIT(value,separator,limit)→strArray

value(string):待拆分字符串

separator(string):拆分条件字符.

limit(number,optional):拆分个数

returnsstrArray(array):anarrayofstrings

eg:SPLIT("foo-bar-baz","-")//["foo","bar","baz"]

SPLIT("foo-bar-baz","-",1)//["foo","bar-baz"]

SPLIT("foo,bar&baz",[",","&"])//["foo","bar","baz"]

SUBSTITUTE() 替换匹配到的字符串

SUBSTITUTE(value,search,replace,limit)→substitutedString

value(string):源字符串

search(string|array):查找的字符串

replace(string|array,optional):替换查找的字符串

limit(number,optional):将替换数限制到此值

returnssubstitutedString(string):返回一个新的字符串

eg:SUBSTITUTE("thequickbrownfoxx","quick","lazy") //"thelazybrownfoxx"

SUBSTITUTE("thequickbrownfoxx",["quick","foxx"],["slow","dog"]) //"theslowbrowndog"

SUBSTITUTE("thequickbrownfoxx",["the","foxx"],["that","dog"],1) //"thatquickbrownfoxx"

SUBSTITUTE("thequickbrownfoxx",["the","quick","foxx"],["A","VOID!"]) //"AVOID!brown"

SUBSTITUTE("thequickbrownfoxx",["quick","foxx"],"xx") //"thexxbrownxx"

SUBSTRING()

SUBSTRING(value,offset,length)→substring

value(string):源字符串

offset(number):起始位置

length(number,optional):截取长度

returnssubstring(string):截取后的字符串

TRIM()

TRIM(value,type)→strippedString

value(string):源字符串

type(number,optional):0-去除两端的空格 1-去除左边的空格 2-去除右边的空格

TRIM(value,chars)→strippedString

value(string):源字符串

chars(string,optional):替换字符串

returnsstrippedString(string):返回替换后的字符串

eg:TRIM("foobar")//"foobar"

TRIM("foobar")//"foobar"

TRIM("--==[foo-bar]==--","-=[]")//"foo-bar"

TRIM("foobar\t\r\n")//"foobar"

TRIM(";foo;bar;baz,",",;")//"foo;bar;baz"

UPPER()

UPPER(value)→upperCaseString

value(string):源字符串

returnsupperCaseString(string): 转换为大写形式的字符串

 类似资料: