Banco de Dados de Documentos - Excluir Documento

Neste capítulo, aprenderemos como excluir um documento de sua conta do Banco de Dados de Documentos. Usando o Portal do Azure, você pode excluir facilmente qualquer documento abrindo o documento no Document Explorer e clicando na opção 'Excluir'.

Ele exibirá a mensagem de confirmação. Agora pressione o botão Sim e você verá que o documento não está mais disponível em sua conta do Banco de Dados de Documentos.

Agora, quando você deseja excluir um documento usando .Net SDK.

Step 1- É o mesmo padrão que vimos antes, onde consultaremos primeiro para obter os SelfLinks de cada novo documento. Não usamos SELECT * aqui, que retornaria os documentos em sua totalidade, dos quais não precisamos.

Step 2 - Em vez disso, estamos apenas selecionando os SelfLinks em uma lista e, em seguida, chamamos DeleteDocumentAsync para cada SelfLink, um de cada vez, para excluir os documentos da coleção.

private async static Task DeleteDocuments(DocumentClient client) {
   Console.WriteLine();
   Console.WriteLine(">>> Delete Documents <<<");
   Console.WriteLine();
   Console.WriteLine("Quering for documents to be deleted");
	
   var sql =
      "SELECT VALUE c._self FROM c WHERE STARTSWITH(c.name, 'New Customer') = true";
		
   var documentLinks =
      client.CreateDocumentQuery<string>(collection.SelfLink, sql).ToList();
		
   Console.WriteLine("Found {0} documents to be deleted", documentLinks.Count);

   foreach (var documentLink in documentLinks) {
      await client.DeleteDocumentAsync(documentLink);
   }
	
   Console.WriteLine("Deleted {0} new customer documents", documentLinks.Count);
   Console.WriteLine();
}

Step 3 - Agora vamos chamar o DeleteDocuments acima da tarefa CreateDocumentClient.

private static async Task CreateDocumentClient() {
   // Create a new instance of the DocumentClient 
   using (var client = new DocumentClient(new Uri(EndpointUrl), AuthorizationKey)) {
      database = client.CreateDatabaseQuery("SELECT * FROM c WHERE c.id =
         'myfirstdb'").AsEnumerable().First(); 
			
      collection = client.CreateDocumentCollectionQuery(database.CollectionsLink,
         "SELECT * FROM c WHERE c.id = 'MyCollection'").AsEnumerable().First();  
			
      await DeleteDocuments(client); 
   } 
}

Quando o código acima for executado, você receberá a seguinte saída.

***** Delete Documents *****  
Quering for documents to be deleted 
Found 2 documents to be deleted 
Deleted 2 new customer documents