DocumentDB - Belgeyi Sil

Bu bölümde, DocumentDB hesabınızdan bir belgeyi nasıl sileceğinizi öğreneceğiz. Azure Portal kullanarak, belgeyi Belge Gezgini'nde açıp 'Sil' seçeneğine tıklayarak herhangi bir belgeyi kolayca silebilirsiniz.

Onay mesajını gösterecektir. Şimdi Evet düğmesine basın ve belgenin artık DocumentDB hesabınızda bulunmadığını göreceksiniz.

Şimdi .Net SDK kullanarak bir belgeyi silmek istediğinizde.

Step 1- Her yeni belgenin SelfLink'lerini almak için ilk önce sorgulayacağımız yerde daha önce gördüğümüz modelin aynısı. İhtiyacımız olmayan belgeleri bir bütün olarak döndüren SELECT * 'i burada kullanmıyoruz.

Step 2 - Bunun yerine, bir listeden yalnızca SelfLink'leri seçiyoruz ve ardından koleksiyondan belgeleri silmek için her bir SelfLink için DeleteDocumentAsync'i teker teker çağırıyoruz.

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 - Şimdi yukarıdaki DeleteDocuments'ı CreateDocumentClient görevinden çağıralım.

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); 
   } 
}

Yukarıdaki kod çalıştırıldığında, aşağıdaki çıktıyı alacaksınız.

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