2017-09-30 8 views
1

Azureポータルを読む私は、Azure関数を通してPOSTPUT、およびとCosmosDBを操作する方法を理解しました。しかし削除すると、私はこれを行う方法を理解していません。Azure関数を使用してCosmosDB内の文書を削除する

私はどのバインディングを使用しますか。それはSQLクエリーまたはRemove()のようなコレクションのメソッドによって発生する必要がありますか?

 [**FunctionName**("EmployeeDocumentDB")] 
     public static async Task<HttpResponseMessage> Run(
     [HttpTrigger(AuthorizationLevel.Function, "post", "put", "delete", Route = "EmployeeDocumentDB/partitionkey/{key}/id/{id}")]HttpRequestMessage req, 
     [DocumentDB(
     databaseName: "MyDatabase", 
     collectionName: "MyCollection", 
     ConnectionStringSetting = "CosmosDBEmulator")] ICollector<Person> outputDocument, 
     TraceWriter log) 
    { 
     dynamic data = await req.Content.ReadAsAsync<Person>(); 

     return req.CreateResponse(HttpStatusCode.Accepted); 
    } 
+0

を?あなたは削除時にあなたのために働いた答えを得ましたか?私は立ち往生している –

答えて

0

これは、直接DocumentClientにバインドして、プログラムによって削除することができます。

[FunctionName("DeleteDocument")] 
    public static async Task Run(
     [TimerTrigger("00:01", RunOnStartup = true)] TimerInfo timer, 
     [DocumentDB] DocumentClient client, 
     TraceWriter log) 
    { 
     var collectionUri = UriFactory.CreateDocumentCollectionUri("ItemDb", "ItemCollection"); 
     var documents = client.CreateDocumentQuery(collectionUri); 

     foreach (Document d in documents) 
     { 
      await client.DeleteDocumentAsync(d.SelfLink); 
     } 
    } 

DocumentDBSamples

0

を参照してください私は、AzureのコスモスDBのためのストアドプロシージャプログラミングを活用し、より良いパフォーマンス(ネットワーク・トラフィックの遅延、取引のための店のオーバーヘッドのためにバッチ内の単一のストアドプロシージャ内の文書を削除することを好みます等。)。詳細は、hereを参照してください。

ストアドプロシージャを作成するには、簡単な方法でAzure Portalでコレクション用に作成できます。また、特定のクエリに対してバッチで文書を削除する場合は、サンプルhereに従うことができます。あなたの紺碧の機能については

、あなたはバッチでドキュメントを削除するストアドプロシージャを実行するための以下のコードを呼び出すことができます:あなたがでPUTを学びました

StoredProcedureResponse<object> result = await client.ExecuteStoredProcedureAsync<object>(
    UriFactory.CreateStoredProcedureUri("MyDatabase", "MyCollection", "bulkDeleteSproc"), 
    "SELECT c._self FROM c WHERE c.founded_year = 2008"); 
関連する問題