Profile Query Language O (PQL) oferece funções para facilitar a interação com matrizes, listas e strings. Mais informações sobre outras funções PQL podem ser encontradas no Profile Query Language visão geral.
A variável 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 variável notIn
é usada para determinar se um item não é membro de uma matriz ou lista.
A variável notIn
função também garante que nenhum dos valores seja igual a nulo. Portanto, os resultados não são uma negação exata do in
função.
Formato
{VALUE} notIn {ARRAY}
Exemplo
A consulta PQL a seguir define as pessoas com aniversários que não estão em março, junho ou setembro.
person.birthMonth notIn [3, 6, 9]
A variável 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 uma das cores vermelha, azul ou verde.
person.favoriteColors.intersects(["red", "blue", "green"])
A variável intersection
é usada para determinar os membros comuns de duas matrizes ou listas.
Formato
{ARRAY}.intersection({ARRAY})
Exemplo
A seguinte consulta 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"]
A variável 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.
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 variável 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 variável 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 cujas cores favoritas incluem vermelho.
person.favoriteColors.includes("red")
A variável distinct
é usada para remover valores duplicados de uma matriz ou lista.
Formato
{ARRAY}.distinct()
Exemplo
A consulta PQL a seguir especifica as pessoas que fizeram pedidos em mais de uma loja.
person.orders.storeId.distinct().count() > 1
A variável 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 todas as ordens pelas quais a ordem foi armazenada.
orders.groupBy(storeId)
A variável 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 pela qual filtrar. |
Exemplo
A consulta PQL a seguir define todas as pessoas com 21 anos ou mais.
person.filter(age >= 21)
A variável map
Esta função é usada para criar uma nova matriz aplicando uma expressão a cada item em uma determinada 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)
n
na matrizA variável topN
é usada para retornar a primeira N
itens em uma matriz, quando classificados 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 as cinco principais ordens com o preço mais alto.
orders.topN(price, 5)
n
na matrizA variável bottomN
é usada para retornar a última N
itens em uma matriz, quando classificados 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 as cinco principais ordens com o preço mais baixo.
orders.bottomN(price, 5)
A variável head
é usada para retornar o primeiro item na matriz ou lista.
Formato
{ARRAY}.head()
Exemplo
A consulta PQL a seguir retorna a primeira das cinco principais ordens com o preço mais alto. Mais informações sobre o topN
pode ser encontrada na variável primeiro n
na matriz seção.
orders.topN(price, 5).head()
Agora que você aprendeu sobre as funções de matriz, lista e conjunto, é possível usá-las nas consultas PQL. Para obter mais informações sobre outras funções PQL, leia o Visão geral do idioma de consulta do perfil.