DocumentDB - Eliminar documento

En este capítulo, aprenderemos cómo eliminar un documento de su cuenta de DocumentDB. Con Azure Portal, puede eliminar fácilmente cualquier documento abriendo el documento en el Explorador de documentos y haciendo clic en la opción 'Eliminar'.

Mostrará el mensaje de confirmación. Ahora presione el botón Sí y verá que el documento ya no está disponible en su cuenta de DocumentDB.

Ahora, cuando desee eliminar un documento utilizando .Net SDK.

Step 1- Es el mismo patrón que hemos visto antes donde consultaremos primero para obtener los SelfLinks de cada nuevo documento. No usamos SELECT * aquí, lo que devolvería los documentos en su totalidad, lo que no necesitamos.

Step 2 - En su lugar, solo seleccionamos los SelfLinks en una lista y luego simplemente llamamos DeleteDocumentAsync para cada SelfLink, uno a la vez, para eliminar los documentos de la colección.

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 - Ahora llamemos a los DeleteDocuments anteriores desde la tarea 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); 
   } 
}

Cuando se ejecuta el código anterior, recibirá el siguiente resultado.

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