Profile Query Language (PQL) oferece funções para facilitar a interação com arrays, listas e strings. Mais informações sobre outras funções PQL podem ser encontradas na Profile Query Language visão geral.
A função in
é usada para determinar se um item é membro de uma matriz ou lista.
Formato
{VALUE} in {ARRAY}
Exemplo
A consulta PQL a seguir define as pessoas com aniversários em março, junho ou setembro.
person.birthMonth in [3, 6, 9]
A função notIn
é usada para determinar se um item não é membro de uma matriz ou lista.
A função 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
A consulta PQL a seguir define pessoas com aniversários que não estejam em março, junho ou setembro.
person.birthMonth notIn [3, 6, 9]
A função intersects
é usada para determinar se duas matrizes ou listas têm pelo menos um membro comum.
Formato
{ARRAY}.intersects({ARRAY})
Exemplo
A consulta PQL a seguir define as pessoas cujas cores favoritas incluem pelo menos um vermelho, azul ou verde.
person.favoriteColors.intersects(["red", "blue", "green"])
A função intersection
é usada para determinar os membros comuns de duas matrizes ou listas.
Formato
{ARRAY}.intersection({ARRAY})
Exemplo
A consulta PQL a seguir 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"]
A função subsetOf
é usada para determinar se uma matriz específica (matriz A) é um subconjunto de outra matriz (matriz B). Em outras palavras, todos os elementos na matriz A são elementos da matriz B.
Formato
{ARRAY}.subsetOf({ARRAY})
Exemplo
A consulta PQL a seguir define as pessoas que visitaram todas as cidades favoritas.
person.favoriteCities.subsetOf(person.visitedCities)
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.
Formato
{ARRAY}.supersetOf({ARRAY})
Exemplo
A consulta PQL a seguir define as pessoas que comeram sushi e pizza pelo menos uma vez.
person.eatenFoods.supersetOf(["sushi", "pizza"])
A função includes
é usada para determinar se uma matriz ou lista contém um determinado item.
Formato
{ARRAY}.includes({ITEM})
Exemplo
A consulta PQL a seguir define as pessoas cuja cor favorita inclui o vermelho.
person.favoriteColors.includes("red")
A função distinct
é usada para remover valores duplicados de uma matriz ou lista.
Formato
{ARRAY}.distinct()
Exemplo
A consulta PQL a seguir especifica pessoas que fizeram pedidos em mais de um armazenamento.
person.orders.storeId.distinct().count() > 1
A função groupBy
é usada para particionar valores de uma matriz ou lista em um grupo com base no valor da expressão.
Formato
{ARRAY}.groupBy({EXPRESSION)
Argumento | Descrição |
---|---|
{ARRAY} |
A matriz ou lista que deve ser agrupada. |
{EXPRESSION} |
Uma expressão que mapeia cada item na matriz ou lista retornada. |
Exemplo
A consulta PQL a seguir agrupa todos os pedidos pelos quais o pedido foi colocado no armazenamento.
orders.groupBy(storeId)
A função filter
é usada para filtrar uma matriz ou lista com base em uma expressão.
Formato
{ARRAY}.filter({EXPRESSION})
Argumento | Descrição |
---|---|
{ARRAY} |
A matriz ou lista que deve ser filtrada. |
{EXPRESSION} |
Uma expressão para filtrar por. |
Exemplo
A consulta PQL a seguir define todas as pessoas com 21 anos ou mais.
person.filter(age >= 21)
A função map
é usada para criar uma nova matriz aplicando uma expressão a cada item em uma matriz específica.
Formato
array.map(expression)
Exemplo
A consulta PQL a seguir cria uma nova matriz de números e quadrados do valor dos números originais.
numbers.map(square)
n
na matrizA função topN
é usada para retornar os primeiros N
itens em uma matriz, quando classificada em ordem crescente com base na expressão numérica fornecida.
Formato
{ARRAY}.topN({VALUE}, {AMOUNT})
Argumento | Descrição |
---|---|
{ARRAY} |
A matriz ou lista que deve ser classificada. |
{VALUE} |
A propriedade na qual classificar a matriz ou lista. |
{AMOUNT} |
O número de itens a serem retornados. |
Exemplo
A consulta PQL a seguir retorna os cinco principais pedidos com o preço mais alto.
orders.topN(price, 5)
n
na matrizA função bottomN
é usada para retornar os últimos N
itens em uma matriz, quando classificada em ordem crescente com base na expressão numérica fornecida.
Formato
{ARRAY}.bottomN({VALUE}, {AMOUNT})
Argumento | Descrição |
---|---|
{ARRAY} |
A matriz ou lista que deve ser classificada. |
{VALUE} |
A propriedade na qual classificar a matriz ou lista. |
{AMOUNT} |
O número de itens a serem retornados. |
Exemplo
A consulta PQL a seguir retorna os cinco principais pedidos com o preço mais baixo.
orders.bottomN(price, 5)
A função head
é usada para retornar o primeiro item na matriz ou lista.
Formato
{ARRAY}.head()
Exemplo
A consulta PQL a seguir retorna o primeiro dos cinco principais pedidos com o preço mais alto. Mais informações sobre a função topN
podem ser encontradas na seção first n
no array.
orders.topN(price, 5).head()
Agora que você aprendeu sobre funções de array, lista e conjunto, é possível usá-las em consultas PQL. Para obter mais informações sobre outras funções PQL, leia a Visão geral da linguagem de consulta de perfil.