DocumentDB - Hapus Dokumen

Di bab ini, kita akan belajar cara menghapus dokumen dari akun DocumentDB Anda. Menggunakan Azure Portal, Anda dapat dengan mudah menghapus dokumen apa pun dengan membuka dokumen di Document Explorer dan mengklik opsi 'Hapus'.

Ini akan menampilkan pesan konfirmasi. Sekarang tekan tombol Yes dan Anda akan melihat bahwa dokumen tersebut tidak lagi tersedia di akun DocumentDB Anda.

Sekarang ketika Anda ingin menghapus dokumen menggunakan .Net SDK.

Step 1- Ini adalah pola yang sama seperti yang telah kita lihat sebelumnya di mana kita akan melakukan kueri terlebih dahulu untuk mendapatkan Tautan Mandiri dari setiap dokumen baru. Kami tidak menggunakan SELECT * di sini, yang akan mengembalikan dokumen secara keseluruhan, yang tidak kami butuhkan.

Step 2 - Sebagai gantinya kami hanya memilih SelfLinks ke dalam daftar dan kemudian kami hanya memanggil DeleteDocumentAsync untuk setiap SelfLink, satu per satu, untuk menghapus dokumen dari koleksi.

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 - Sekarang panggil DeleteDocuments di atas dari tugas 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); 
   } 
}

Ketika kode di atas dijalankan, Anda akan menerima output berikut.

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