Funções de matriz, lista e definição
O Profile Query Language (PQL) oferece funções para facilitar a interação com matrizes, listas e cadeias de caracteres. Mais informações sobre outras funções do PQL podem ser encontradas na Profile Query Language visão geral.
Em
A função in
é usada para determinar se um item é membro de uma matriz ou lista como booleano.
Formato
{VALUE} in {ARRAY}
Exemplo
A consulta do PQL a seguir define as pessoas com aniversários em março, junho ou setembro.
person.birthMonth in [3, 6, 9]
Não está em
A função notIn
é usada para determinar se um item não é membro de uma matriz ou lista como booleano.
notIn
também garante que nenhum dos valores seja igual a nulo. Portanto, os resultados não são uma negação exata da função in
.Formato
{VALUE} notIn {ARRAY}
Exemplo
O query do PQL a seguir define as pessoas com aniversários que não são em março, junho ou setembro.
person.birthMonth notIn [3, 6, 9]
Intersecta
A função intersects
é usada para determinar se duas matrizes ou listas têm pelo menos um membro comum como booleano.
Formato
{ARRAY}.intersects({ARRAY})
Exemplo
A seguinte query do PQL define as pessoas cujas cores favoritas incluem pelo menos uma das cores vermelha, azul ou verde.
person.favoriteColors.intersects(["red", "blue", "green"])
Interseção
A função intersection
é usada para determinar os membros comuns de duas matrizes ou listas como uma lista.
Formato
{ARRAY}.intersection({ARRAY})
Exemplo
A seguinte consulta do PQL define se a pessoa 1 e a pessoa 2 têm cores favoritas de vermelho, azul e verde.
person1.favoriteColors.intersection(person2.favoriteColors) = ["red", "blue", "green"]
Subconjunto de
A função subsetOf
é usada para determinar se uma matriz específica (matriz A) é um subconjunto de outra matriz (matriz B). Em outras palavras, que todos os elementos na matriz A são elementos da matriz B como booleano.
Formato
{ARRAY}.subsetOf({ARRAY})
Exemplo
O query do PQL a seguir define as pessoas que visitaram todas as cidades favoritas.
person.favoriteCities.subsetOf(person.visitedCities)
Superconjunto de
A função supersetOf
é usada para determinar se uma matriz específica (matriz A) é um superconjunto de outra matriz (matriz B). Em outras palavras, essa matriz A contém todos os elementos na matriz B como booleano.
Formato
{ARRAY}.supersetOf({ARRAY})
Exemplo
A consulta do PQL a seguir define as pessoas que comeram sushi e pizza pelo menos uma vez.
person.eatenFoods.supersetOf(["sushi", "pizza"])
Inclui
A função includes
é usada para determinar se uma matriz ou lista contém um determinado item como booleano.
Formato
{ARRAY}.includes({ITEM})
Exemplo
A seguinte query do PQL define as pessoas cuja cor favorita inclui vermelho.
person.favoriteColors.includes("red")
Distinto
A função distinct
é usada para remover valores duplicados de uma matriz ou lista como uma matriz.
Formato
{ARRAY}.distinct()
Exemplo
A consulta do PQL a seguir especifica as pessoas que fizeram pedidos em mais de uma loja.
person.orders.storeId.distinct().count() > 1
Agrupar por
A função groupBy
é usada para particionar valores de uma matriz ou lista em um grupo com base no valor da expressão como um mapa de valores exclusivos da expressão de agrupamento para matrizes que são partições do valor da expressão de matriz.
Formato
{ARRAY}.groupBy({EXPRESSION})
{ARRAY}
{EXPRESSION}
Exemplo
A consulta do PQL a seguir agrupa todas as ordens pelas quais a ordem foi armazenada.
xEvent[type="order"].groupBy(storeId)
Filtro
A função filter
é usada para filtrar uma matriz ou lista com base em uma expressão como uma matriz ou lista, dependendo da entrada.
Formato
{ARRAY}.filter({EXPRESSION})
{ARRAY}
{EXPRESSION}
Exemplo
A consulta do PQL a seguir define todas as pessoas com 21 anos ou mais.
person.filter(age >= 21)
Mapa
A função map
é usada para criar uma nova matriz aplicando uma expressão a cada item em uma determinada matriz como uma matriz.
Formato
array.map(expression)
Exemplo
A consulta PQL a seguir cria uma nova matriz de números e eleva ao quadrado o valor dos números originais.
numbers.map(square)
Primeiro n
na matriz first-n
A função topN
é usada para retornar os primeiros itens N
em uma matriz, quando classificados em ordem crescente com base na expressão numérica fornecida como uma matriz.
Formato
{ARRAY}.topN({VALUE}, {AMOUNT})
{ARRAY}
{VALUE}
{AMOUNT}
Exemplo
A consulta do PQL a seguir retorna as cinco principais ordens com o preço mais alto.
orders.topN(price, 5)
Último n
na matriz
A função bottomN
é usada para retornar os últimos itens N
em uma matriz, quando classificados em ordem crescente com base na expressão numérica fornecida como uma matriz.
Formato
{ARRAY}.bottomN({VALUE}, {AMOUNT})
{ARRAY}
{VALUE}
{AMOUNT}
Exemplo
A consulta do PQL a seguir retorna as cinco principais ordens com o preço mais baixo.
orders.bottomN(price, 5)
Primeiro item
A função head
é usada para retornar o primeiro item na matriz ou lista como um objeto.
Formato
{ARRAY}.head()
Exemplo
A consulta PQL a seguir retorna o primeiro dos cinco pedidos principais com o preço mais alto. Mais informações sobre a função topN
podem ser encontradas na primeira n
da seção de matriz.
orders.topN(price, 5).head()
Próximas etapas
Agora que você aprendeu sobre as funções de matriz, lista e conjunto, é possível usá-las nas queries do PQL. Para obter mais informações sobre outras funções do PQL, leia a visão geral do Profile Query Language.