DocumentDB - Supprimer le document

Dans ce chapitre, nous allons apprendre comment supprimer un document de votre compte DocumentDB. À l'aide d'Azure Portal, vous pouvez facilement supprimer n'importe quel document en ouvrant le document dans l'Explorateur de documents et en cliquant sur l'option «Supprimer».

Il affichera le message de confirmation. Appuyez maintenant sur le bouton Oui et vous verrez que le document n'est plus disponible dans votre compte DocumentDB.

Maintenant, lorsque vous souhaitez supprimer un document à l'aide du SDK .Net.

Step 1- C'est le même modèle que nous avons vu précédemment où nous allons d'abord demander les SelfLinks de chaque nouveau document. Nous n'utilisons pas SELECT * ici, qui retournerait les documents dans leur intégralité, dont nous n'avons pas besoin.

Step 2 - Au lieu de cela, nous sélectionnons simplement les SelfLinks dans une liste, puis nous appelons simplement DeleteDocumentAsync pour chaque SelfLink, un à la fois, pour supprimer les documents de la collection.

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 - Appelons maintenant les DeleteDocuments ci-dessus à partir de la tâche 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); 
   } 
}

Lorsque le code ci-dessus est exécuté, vous recevrez la sortie suivante.

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