Kullanıcı tanımlı işlevler oluşturma

Tamamlandı

Kullanıcı tanımlı işlevler (UDF), NoSQL'in sorgu dili dil bilgisi için Azure Cosmos DB'yi genişletmek ve özel iş mantığı uygulamak için kullanılır. UDF'ler yalnızca SQL sorgu dilini geliştirip genişleten sorguların içinden çağrılabilir.

Not

UDF'lerin bağlam nesnesine erişimi yoktur ve yalnızca işlem kodu olarak kullanılması amaçlanıyor

Aşağıda , adı ve fiyat özelliği olan bir ürün için örnek bir JSON belgesi verilmiştir.

{
  "name": "Black Bib Shorts (Small)",
  "price": 80.00
}

Bunun gibi birçok öğe içeren bir kapsayıcıdan veri almak için basit bir SQL sorgusu, her iki alanı da içerecek şekilde oluşturulur.

SELECT 
    p.name,
    p.price
FROM
    products p

UDF'ler, basit iş mantığını bir sorguya yerleştirebileceğiniz küçük alanlar vererek SQL sorgu dilini genişletir. Şimdi bu örneği ele alalım ve iş vergisi uygulamak için kullanıcı tanımlı bir işlev oluşturalım. Örnek senaryomuzda 15% vergi uygulamak ve üçüncü priceWithTax özelliğini içeren ideal bir sonuç kümesi elde etmek istiyoruz.

[
  {
    "name": "Black Bib Shorts (Small)",
    "price": 80.00,
    "priceWithTax": 92.00
  }
]

Kullanıcı tanımlı bir işlev, bir veya daha fazla skaler giriş[s] alan ve çıkış olarak skaler bir değer döndüren bir JavaScript işlevi olarak tanımlanır.

function name(input) {
    return output;
}

Bu örnek işlevde, skaler girişin 15% vergi eklemek için 1,15 ile katlanan bir sayı olduğu varsayılır.

function addTax(preTax) {
    return preTax * 1.15;
}

Güncellenmiş sorgu, udf.addTax() alanını giriş parametresi olarak alarak ve bu alanın çıktısını priceWithTax adıyla adlandırarak, söz dizimini kullanarak udf işlevine referans veren projeksiyon edilmiş bir üçüncü alan içerir.

SELECT 
    p.name,
    p.price,
    udf.addTax(p.price) AS priceWithTax
FROM
    products p