Documentdb-sql-user-defined-functions
DocumentDB SQL-ユーザー定義関数
DocumentDB SQLは、ユーザー定義関数(UDF)のサポートを提供します。 UDFは、ユーザーが記述できるJavaScript関数の一種に過ぎず、これらは期待どおりに機能します。 UDFを作成して、クエリで参照できるカスタムビジネスロジックでクエリ言語を拡張できます。
DocumentDB SQL構文は、これらのUDFを使用してカスタムアプリケーションロジックをサポートするように拡張されています。 UDFはDocumentDBに登録し、SQLクエリの一部として参照できます。
この例では、次の3つのドキュメントを考えてみましょう。
簡単なUDFを作成する例を見てみましょう。
以下は、 CreateUserDefinedFunctions の実装です。
udfRegExがあり、CreateUserDefinedFunctionでローカルファイルからJavaScriptコードを取得します。 次のコードに示すように、新しいUDFの定義オブジェクトを作成し、コレクションのSelfLinkおよびudfDefinitionオブジェクトを使用してCreateUserDefinedFunctionAsyncを呼び出します。
結果のリソースプロパティから新しいUDFを取得し、呼び出し元に返します。 既存のUDFを表示するための ViewUserDefinedFunctions の実装は次のとおりです。 CreateUserDefinedFunctionQuery を呼び出し、通常どおりループします。
DocumentDB SQLには、部分文字列または正規表現を検索するための組み込み関数が用意されていないため、次の小さなワンライナーがJavaScript関数であるこのギャップを埋めます。
最初のパラメーターの入力文字列を指定すると、JavaScriptの組み込み正規表現サポートを使用して、2番目のパラメーターのパターンマッチング文字列を。 match に渡します。 サブストリングクエリを実行して、 lastName プロパティにAndersenという単語が含まれるすべてのストアを検索できます。
すべてのUDF参照を接頭辞 udf で修飾する必要があることに注意してください。 通常のクエリと同様に、SQLを CreateDocumentQuery に渡しました。 最後に、 CreateDocumentClient タスクから上記のクエリを呼び出しましょう
上記のコードが実行されると、次の出力が生成されます。