Creación de funciones definidas por el usuario
Las funciones definidas por el usuario (UDF) se usan para ampliar la gramática del lenguaje de consulta de Azure Cosmos DB for NoSQL e implementar lógica de negocios personalizada. Las UDF solo se pueden llamar desde consultas, ya que mejoran y amplían el lenguaje de consulta SQL.
Nota
Las UDF no tienen acceso al objeto de contexto y están pensadas para usarse como código exclusivo de cálculo.
Este es un documento JSON de ejemplo para un producto con un nombre y una propiedad price .
{
"name": "Black Bib Shorts (Small)",
"price": 80.00
}
Se construiría una consulta SQL sencilla para obtener los datos de un contenedor con muchos elementos como este a fin de incluir ambos campos.
SELECT
p.name,
p.price
FROM
products p
Las UDF amplían el lenguaje de consulta SQL al ofrecer pequeñas áreas en las que insertar lógica de negocios simple en una consulta. Veamos este ejemplo en el que se crea una función definida por el usuario para aplicar los impuestos. En nuestro escenario de ejemplo, queremos aplicar un impuesto de 15% y terminar con un conjunto de resultados ideal que incluya una tercera propiedad precioConImpuesto.
[
{
"name": "Black Bib Shorts (Small)",
"price": 80.00,
"priceWithTax": 92.00
}
]
Una función definida por el usuario se define como una función de JavaScript que toma una o varias entradas escalares y devuelve un valor escalar como salida.
function name(input) {
return output;
}
En esta función de ejemplo se da por hecho que la entrada escalar es un número que luego se multiplica por 1.15 para agregar un impuesto del 15 %.
function addTax(preTax) {
return preTax * 1.15;
}
La consulta actualizada incluye un tercer campo proyectado que hace referencia a la función udf mediante la udf.addTax() sintaxis que pasa el campo p.price como parámetro de entrada y alias la salida de ese campo al nombre priceWithTax.
SELECT
p.name,
p.price,
udf.addTax(p.price) AS priceWithTax
FROM
products p