Profile Query Language (PQL) ofrece funciones para facilitar la interacción con matrices, listas y cadenas. Puede encontrar más información sobre otras funciones PQL en la Profile Query Language descripción general.
El in
se utiliza para determinar si un elemento es miembro de una matriz o lista.
Formato
{VALUE} in {ARRAY}
Ejemplo
La siguiente consulta PQL define a las personas con cumpleaños en marzo, junio o septiembre.
person.birthMonth in [3, 6, 9]
El notIn
se utiliza para determinar si un elemento no es miembro de una matriz o lista.
El notIn
función también garantiza que ninguno de los valores sea igual a nulo. Por lo tanto, los resultados no son una negación exacta de la in
función.
Formato
{VALUE} notIn {ARRAY}
Ejemplo
La siguiente consulta PQL define a las personas con cumpleaños que no son en marzo, junio o septiembre.
person.birthMonth notIn [3, 6, 9]
El intersects
se utiliza para determinar si dos matrices o listas tienen al menos un miembro común.
Formato
{ARRAY}.intersects({ARRAY})
Ejemplo
La siguiente consulta PQL define a las personas cuyos colores favoritos incluyen al menos uno de rojo, azul o verde.
person.favoriteColors.intersects(["red", "blue", "green"])
El intersection
se utiliza para determinar los miembros comunes de dos matrices o listas.
Formato
{ARRAY}.intersection({ARRAY})
Ejemplo
La siguiente consulta PQL define si la persona 1 y la persona 2 tienen ambos colores favoritos de rojo, azul y verde.
person1.favoriteColors.intersection(person2.favoriteColors) = ["red", "blue", "green"]
El subsetOf
se utiliza para determinar si una matriz específica (matriz A) es un subconjunto de otra matriz (matriz B). En otras palabras, que todos los elementos de la matriz A son elementos de la matriz B.
Formato
{ARRAY}.subsetOf({ARRAY})
Ejemplo
La siguiente consulta PQL define a las personas que han visitado todas sus ciudades favoritas.
person.favoriteCities.subsetOf(person.visitedCities)
El supersetOf
se utiliza para determinar si una matriz específica (matriz A) es un superconjunto de otra matriz (matriz B). En otras palabras, esa matriz A contiene todos los elementos de la matriz B.
Formato
{ARRAY}.supersetOf({ARRAY})
Ejemplo
La siguiente consulta PQL define a las personas que han comido sushi y pizza al menos una vez.
person.eatenFoods.supersetOf(["sushi", "pizza"])
El includes
se utiliza para determinar si una matriz o lista contiene un elemento determinado.
Formato
{ARRAY}.includes({ITEM})
Ejemplo
La siguiente consulta PQL define a las personas cuyo color favorito incluye el rojo.
person.favoriteColors.includes("red")
El distinct
se utiliza para eliminar valores duplicados de una matriz o lista.
Formato
{ARRAY}.distinct()
Ejemplo
La siguiente consulta PQL especifica las personas que han realizado pedidos en más de un almacén.
person.orders.storeId.distinct().count() > 1
El groupBy
se utiliza para dividir los valores de una matriz o lista en un grupo en función del valor de la expresión.
Formato
{ARRAY}.groupBy({EXPRESSION)
Argumento | Descripción |
---|---|
{ARRAY} |
La matriz o lista que se va a agrupar. |
{EXPRESSION} |
Expresión que asigna cada elemento de la matriz o lista devuelta. |
Ejemplo
La siguiente consulta PQL agrupa todos los pedidos en los que se almacena el pedido.
orders.groupBy(storeId)
El filter
se utiliza para filtrar una matriz o lista en función de una expresión.
Formato
{ARRAY}.filter({EXPRESSION})
Argumento | Descripción |
---|---|
{ARRAY} |
La matriz o lista que se va a filtrar. |
{EXPRESSION} |
Una expresión por la que filtrar. |
Ejemplo
La siguiente consulta PQL define todas las personas de 21 años o más.
person.filter(age >= 21)
El map
se utiliza para crear una nueva matriz aplicando una expresión a cada elemento de una matriz determinada.
Formato
array.map(expression)
Ejemplo
La siguiente consulta PQL crea una nueva matriz de números y ajusta al cuadrado el valor de los números originales.
numbers.map(square)
n
en matrizEl topN
se utiliza para devolver la primera función N
elementos de una matriz, cuando se ordenan en orden ascendente según la expresión numérica dada.
Formato
{ARRAY}.topN({VALUE}, {AMOUNT})
Argumento | Descripción |
---|---|
{ARRAY} |
La matriz o lista que se va a ordenar. |
{VALUE} |
Propiedad en la que se ordena la matriz o lista. |
{AMOUNT} |
Número de elementos que se van a devolver. |
Ejemplo
La siguiente consulta PQL devuelve los cinco pedidos principales con el precio más alto.
orders.topN(price, 5)
n
en matrizEl bottomN
se utiliza para devolver el último N
elementos de una matriz, cuando se ordenan en orden ascendente según la expresión numérica dada.
Formato
{ARRAY}.bottomN({VALUE}, {AMOUNT})
Argumento | Descripción |
---|---|
{ARRAY} |
La matriz o lista que se va a ordenar. |
{VALUE} |
Propiedad en la que se ordena la matriz o lista. |
{AMOUNT} |
Número de elementos que se van a devolver. |
Ejemplo
La siguiente consulta PQL devuelve los cinco pedidos principales con el precio más bajo.
orders.bottomN(price, 5)
El head
se utiliza para devolver el primer elemento de la matriz o lista.
Formato
{ARRAY}.head()
Ejemplo
La siguiente consulta PQL devuelve el primero de los cinco pedidos principales con el precio más alto. Más información sobre la topN
se puede encontrar en la primero n
en matriz sección.
orders.topN(price, 5).head()
Ahora que ha aprendido acerca de las funciones de matriz, lista y conjunto, puede utilizarlas en sus consultas PQL. Para obtener más información sobre otras funciones PQL, lea la Introducción al lenguaje de consulta de perfil.