2017-06-20 10 views
0

私はコレクションにトリガをかけようとしていますが、トリッピングしていないようです。トリガはAzureポータルで準備されています。特定のロジックを試していましたが、最終的にAzureサイトに例を載せました。トリガーロジックは次のとおりです。Azure Cosmos/Document DB Trigger

var context = getContext(); 
var request = context.getRequest(); 

// document to be created in the current operation 
var documentToCreate = request.getBody(); 

// validate properties 
if (!("timestamp" in documentToCreate)) 
{ 
    var ts = new Date(); 
    documentToCreate["my timestamp"] = ts.getTime(); 
} 

// update the document that will be created 
request.setBody(documentToCreate); 

トリガーが機能していません。エラーは生成されず、何が起きているのか不明です。

注:トリガーはプレクレートトリガーです。私がリストしたトリガーロジックのために、私は "私のタイムスタンプ"プロパティを持つドキュメントを作成していません。同じコンセプトに沿って、作成するドキュメントに属性を追加するためのシナリオをテストしました。

答えて

4

トリガーは自動的にトリガーされません。むしろ、トリガを有効にする操作でトリガを明示的に指定する必要があります。これはパフォーマンス上の理由から行われますが、トリガーの有用性が低くなります。

+0

操作からどのようにトリップされましたか?そして、それらはコードからのみ起動できますか?彼らはAzureポータルからトリップすることができますか? – Peter

+0

node.js SDKの場合、任意の操作の要求オプション(たとえば、 'upsertDocument() ')で指定します:http://azure.github.io/azure-documentdb-node/global.html#RequestOptions 。他のSDKと同様のものがあると思います。 –

+0

私が知る限り、Larry Maccheroneが述べたように、トリガを有効にする操作でトリガを明示的に指定する必要があります。現在、Azureポータルからはサポートされていないようです。私はまた別のスミラ[SOスレッド](https://stackoverflow.com/questions/32647843/trigger-in-documentdb-not-fired)を見つける。 –

関連する問題