OrientDB - Funções

Este capítulo explica a referência completa de diferentes tipos de funções no OrientDB. A tabela a seguir define a lista de funções, que são categorizadas por sua funcionalidade.

Funções de gráfico

Sr. Não. Nome e descrição da função
1

Out():

Obtém os vértices de saída adjacentes a partir do registro atual como Vértice.

Syntax - out ([<label-1>] [, <label-n>] *)

2

In():

Obtém os vértices adjacentes de entrada a partir do registro atual como Vertex.

Syntax - em ([<label-1>] [, <label-n>] *)

3

Both():

Obtém os vértices de saída e de entrada adjacentes a partir do registro atual como Vertex.

Syntax - ambos ([<label1>] [, <label-n>] *)

4

outE():

Obtém as bordas de saída adjacentes a partir do registro atual como Vertex.

Syntax - outE ([<label1>] [, <label-n>] *)

5

inE():

Obtém as bordas de entrada adjacentes a partir do registro atual como Vertex.

Syntax - inE ([<label1>] [, <label-n>] *)

6

bothE():

Obtém as bordas de saída e de entrada adjacentes a partir do registro atual como Vertex.

Syntax - bothE ([<label1>] [, <label-n>] *)

7

outV():

Obtém os vértices de saída a partir do registro atual como Edge.

Syntax - outV ()

8

inV():

Obtenha os vértices de entrada do registro atual como Edge.

Syntax - inV ()

9

traversedElement():

Retorna o (s) elemento (s) percorrido (s) em comandos Traverse.

Syntax - traversedElement (<index> [, <items>])

10

traversedVertex():

Retorne o (s) vértice (s) atravessado (s) em comandos Traverse.

Syntax - traversedVertex (<index> [, <items>])

11

traversedEdge():

Retorna a (s) aresta (s) atravessada (s) em comandos Traverse.

Syntax - traversedEdge (<index> [, <items>])

12

shortestPath():

Retorna o caminho mais curto entre dois vértices. A direção pode ser OUT (padrão), IN ou AMBOS.

Synatx - shortestPath (<sourceVertex>, <destinationVertex> [, <direction> [, <edgeClassName>]])

13

dijkstra():

Retorna o caminho mais barato entre dois vértices usando o algoritmo Dijkstra.

Syntax - dijkstra (<sourceVertex>, <destinationVertex>, <weightEdgeFieldName> [, <direction>])

Experimente algumas funções de gráfico junto com as seguintes consultas.

Execute a seguinte consulta para obter todos os vértices de saída de todos os vértices do veículo.

orientdb {db = demo}>SELECT out() from Vehicle

Se a consulta acima for executada com sucesso, você obterá a seguinte saída.

---+----------+--------- 
 # | @class   | out 
---+----------+--------- 
 0 | Vehicle  | #11:2 
 1 | Vehicle  | #13:1 
 2 | Vehicle  | #13:4 
---+----------+---------

Execute a seguinte consulta para obter os vértices de entrada e de saída do vértice 11: 3.

orientdb {db = demo}>SELECT both() FROM #11:3

Se a consulta acima for executada com sucesso, você obterá a seguinte saída.

---+----------+--------+------- 
 # | @class   | out    | in  
---+----------+--------+------- 
 0 | Vehicle  | #13:2  | #10:2   
 ---+----------+-------+-------

Funções Matemáticas

Sr. Não. Nome e descrição da função
1

eval():

Avalia a expressão entre aspas (ou aspas duplas).

Syntax - eval ('<expressão>')

2

min():

Retorna o valor mínimo. Se chamado com mais de um parâmetro, ele retorna o valor mínimo do argumento entre todos os argumentos.

Syntax - min (<campo> [, <campo-n>] *)

3

max():

Retorna o valor máximo. Se chamado com mais de um parâmetro, retorna o valor máximo entre todos os argumentos.

Syntax - max (<campo> [, <campo-n>] *)

4

sum()

Retorna a soma de todos os valores retornados.

Syntax - soma (<campo>)

5

abs():

Retorna o valor absoluto. Funciona com Integer, Long, Short, Double, Float, BigInteger, BigDecimal, null.

Syntax - abs (<campo>)

6

avg():

Retorna o valor médio.

Syntax - média (<campo>)

7

count():

Conta o registro que corresponde à condição da consulta. Se * não for usado como um campo, o registro será contado apenas se o conteúdo não for nulo.

Syntax - contagem (<campo>)

8

mode():

Retorna o valor que ocorre com a maior frequência. Os nulos são ignorados no cálculo.

Syntax - modo (<campo>)

9

median():

Retorna o valor do meio ou um valor interpolado que representa o valor do meio depois que os valores são classificados. Os nulos são ignorados no cálculo.

Syntax - mediana (<campo>)

10

percentile():

Retorna o enésimo percentil. Nulo é ignorado no cálculo.

Syntax - percentil (<campo> [, <quantil-n>] *)

11

variance()

Retorna a variância média: a média da diferença quadrática da média.

Syntax - variância (<campo>)

12

stddev()

Retorna o desvio padrão: A medida de quão dispersos são os valores. Os nulos são ignorados no cálculo.

Syntax - stddev (<campo>)

Experimente algumas funções matemáticas usando as seguintes consultas.

Execute a seguinte consulta para obter a soma dos salários de todos os funcionários.

orientdb {db = demo}>SELECT SUM(salary) FROM Employee

Se a consulta acima for executada com sucesso, você obterá a seguinte saída.

---+----------+--------- 
 # | @CLASS   | sum 
---+----------+--------- 
 0 | null     | 150000 
---+----------+---------

Execute a seguinte consulta para obter o salário médio de todos os funcionários.

orientdb {db = demo}>SELECT avg(salary) FROM Employee

Se a consulta acima for executada com sucesso, você obterá a seguinte saída.

---+----------+--------- 
 # | @CLASS   | avg 
---+----------+--------- 
 0 | null     | 25 
---+----------+---------

Funções de coleções

Sr. Não. Nome e descrição da função
1

set():

Adiciona um valor a um conjunto. Se o valor for uma coleção, ele será mesclado com o conjunto, caso contrário, <valor> será adicionado.

Syntax - definir (<campo>)

2

map():

Adiciona um valor a um mapa na primeira vez que o mapa é criado. Se <valor> for um mapa, ele será mesclado com o mapa, caso contrário, o par <chave> e <valor> será adicionado ao mapa como uma nova entrada.

Syntax - mapa (<key>, <value>)

3

ist():

Adiciona um valor para listar na primeira vez que a lista é criada. Se <valor> for uma coleção, ele será mesclado com a lista; caso contrário, <valor> será adicionado à lista.

Syntax - lista (<campo>)

4

difference():

Funciona como agregado ou embutido. Se apenas um argumento for passado, ele agrega, caso contrário, executa e retorna a DIFERENÇA entre as coleções recebidas como parâmetros.

Syntax - diferença (<campo> [, <campo-n>] *)

5

first():

Recupera apenas o primeiro item de campos de vários valores (matrizes, coleções e mapas). Para tipos que não sejam de vários valores, apenas retorna o valor.

Syntax - primeiro (<campo>)

6

intersect():

Funciona como agregado ou embutido. Se apenas um argumento for passado, agrega, caso contrário, executa e retorna a INTERAÇÃO das coleções recebidas como parâmetros.

Syntax - intersecção (<campo> [, <campo-n>] *)

7

distinct():

Recupera apenas entradas de dados exclusivas, dependendo do campo que você especificou como argumento. A principal diferença em relação ao SQL DISTINCT padrão é que com OrientDB, uma função com parênteses e apenas um campo pode ser especificado.

Syntax - distinto (<campo>)

8

expand():

Esta função tem dois significados-

  • Quando usado em um campo de coleção, ele desenrola a coleção no campo e a usa como resultado.

  • Quando usado em um campo de link (RID), ele expande o documento apontado por aquele link.

Syntax - expandir (<campo>)

9

unionall():

Funciona como agregado ou embutido. Se apenas um argumento for passado, ele agrega; caso contrário, executa e retorna uma UNION de todas as coleções recebidas como parâmetros. Também funciona sem valores de coleção.

Syntax - unionall (<field> [, <field-n>] *)

10

flatten():

Extrai a coleção no campo e a usa como resultado. Ele está obsoleto, use expand () em seu lugar.

Syntax - achatar (<campo>)

11

last():

Recupera apenas o último item de campos de vários valores (matrizes, coleções e mapas). Para tipos que não sejam de vários valores, apenas retorna o valor.

Syntax - último (<campo>)

12

symmetricDifference():

Funciona como agregado ou embutido. Se apenas um argumento for passado, agrega; caso contrário, executa e retorna a DIFERENÇA SIMÉTRICA entre as coleções recebidas como parâmetros.

Syntax - symmetricDifference (<field> [, <field-n>] *)

Experimente algumas funções de coleção usando as seguintes consultas.

Execute a seguinte consulta para obter um conjunto de professores, lecionando na 9ª classe.

orientdb {db = demo}>SELECT ID, set(teacher.id) AS teacherID from classess where class_id = 9

Se a consulta acima for executada com sucesso, você obterá a seguinte saída.

---+----------+--------+-------------------------- 
 # | @CLASS   | id     | TeacherID 
---+----------+--------+-------------------------- 
 0 | null     | 9     |   1201, 1202, 1205, 1208 
---+----------+-------+---------------------------

Funções diversas

Sr. Não. Nome e descrição da função
1

date():

Retorna uma data formatando uma string. <date-as-string> é a data no formato de string e <formato> é o formato de data de acordo com essas regras.

Syntax - data (<date-as-string> [<format>] [, <timezone>])

2

sysdate():

Retorna a data e hora atuais.

Syntax - sysdate ([<formato>] [, <timezone>])

3

format():

Formata um valor usando as convenções String.format ().

Syntax - formato (<formato> [, <arg1>] (, <arg-n>] *. Md)

4

distance():

Retorna a distância entre dois pontos no globo usando o algoritmo Haversine. As coordenadas devem ser graus.

Syntax - distância (<x-field>, <y-field>, <x-value>, <y-value>)

5

ifnull():

Retorna o campo / valor passado (ou parâmetro opcional return_value_if_not_null). Se o campo / valor não for nulo, ele retornará return_value_if_null.

Syntax - ifnull (<campo | valor>, <return_value_if_null> [, <return_value_if_not_null>] (, <campo & .md # 124; valor>] *)

6

coalesce():

Retorna o primeiro campo / valor não parâmetro nulo. Se nenhum campo / valor não for nulo, retorna nulo.

Syntax - coalescer (<campo | valor> [, <campo-n | valor-n>] *)

7

uuid():

Gera um UUID como um valor de 128 bits usando a variante Leach-Salz.

Syntax - uuid ()

8

if():

Avalia uma condição (primeiros parâmetros) e retorna o segundo parâmetro se a condição for verdadeira, o terceiro caso contrário.

Syntax - if (<expression>, <result-if-true>, <result-if-false>)

Experimente algumas funções Misc usando as seguintes consultas.

Execute a seguinte consulta para aprender como executar a expressão if.

orientdb {db = demo}> SELECT if(eval("name = 'satish'"), "My name is satish", 
"My name is not satish") FROM Employee

Se a consulta acima for executada com sucesso, você obterá a seguinte saída.

----+--------+----------------------- 
#   |@CLASS  | IF 
----+--------+----------------------- 
0   |null    |My name is satish  
1   |null    |My name is not satish 
2   |null    |My name is not satish  
3   |null    |My name is not satish  
4   |null    |My name is not satish  
----+--------+------------------------

Execute a seguinte consulta para obter a data do sistema.

orientdb {db = demo}> SELECT SYSDATE() FROM Employee

Se a consulta acima for executada com sucesso, você obterá a seguinte saída.

----+--------+----------------------- 
#   |@CLASS  | SYSDATE 
----+--------+----------------------- 
0   |null    |2016-02-10 12:05:06 
1   |null    |2016-02-10 12:05:06 
2   |null    |2016-02-10 12:05:06 
3   |null    |2016-02-10 12:05:06 
4   |null    |2016-02-10 12:05:06 
----+--------+------------------------

Usando esta função completamente, você pode manipular facilmente os dados OrientDB.