DocumentDB - Veritabanlarını Listele

Şimdiye kadar DocumentDB hesabımızda iki veri tabanı oluşturduk, birincisi Azure portalı, ikinci veri tabanı .Net SDK kullanılarak oluşturuldu. Şimdi bu veritabanlarını görüntülemek için Azure portalını kullanabilirsiniz.

Azure portalında DocumentDB hesabınıza gidin ve şimdi iki veritabanı göreceksiniz.

Ayrıca .Net SDK kullanarak kodunuzdaki veritabanlarını görüntüleyebilir veya listeleyebilirsiniz. İlgili adımlar aşağıdadır.

Step 1 - Tam bir liste döndüren parametresiz bir veritabanı Sorgusu yayınlayın, ancak belirli bir veritabanını veya belirli veritabanlarını aramak için bir sorgu da iletebilirsiniz.

private static void GetDatabases(DocumentClient client) {
   Console.WriteLine();
   Console.WriteLine();
   Console.WriteLine("******** Get Databases List ********");
	
   var databases = client.CreateDatabaseQuery().ToList(); 
	
   foreach (var database in databases) { 
      Console.WriteLine(" Database Id: {0}; Rid: {1}", database.Id, database.ResourceId);
   }
	
   Console.WriteLine(); 
   Console.WriteLine("Total databases: {0}", databases.Count);
}

Koleksiyonları, belgeleri, kullanıcıları ve diğer kaynakları bulmak için bu CreateQuery yöntemlerinden birkaçı olduğunu göreceksiniz. Bu yöntemler aslında sorguyu yürütmez, sadece sorguyu tanımlar ve yinelenebilir bir nesne döndürür.

Sorguyu gerçekten yürüten, sonuçları yineleyen ve bunları bir listede döndüren ToList () çağrısıdır.

Step 2 - DocumentClient başlatıldıktan sonra CreateDocumentClient görevinden GetDatabases yöntemini çağırın.

Step 3 - Ayrıca CreateDatabase görevine yorum yapmanız veya veritabanı kimliğini değiştirmeniz gerekir, aksi takdirde veritabanının var olduğuna dair bir hata mesajı alırsınız.

using (var client = new DocumentClient(new Uri(EndpointUrl), AuthorizationKey)) {
   //await CreateDatabase(client); 
   GetDatabases(client); 
}

Şimdiye kadarki tam Program.cs dosyası aşağıdadır.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using Microsoft.Azure.Documents;
using Microsoft.Azure.Documents.Client;
using Microsoft.Azure.Documents.Linq;
using Newtonsoft.Json; 

namespace DocumentDBDemo {

   class Program {
      private const string EndpointUrl = "https://azuredocdbdemo.documents.azure.com:443/";
		
      private const string AuthorizationKey = "BBhjI0gxdVPdDbS4diTjdloJq7Fp4L5RO/
         StTt6UtEufDM78qM2CtBZWbyVwFPSJIm8AcfDu2O+AfV T+TYUnBQ==";
			
      static void Main(string[] args) {
         try {
            CreateDocumentClient().Wait();
         } catch (Exception e) {
            Exception baseException = e.GetBaseException();
            Console.WriteLine("Error: {0}, Message: {1}", e.Message, baseException.Message);
         }
         Console.ReadKey();
      }
		
      private static async Task CreateDocumentClient() {
         // Create a new instance of the DocumentClient
         using (var client = new DocumentClient(new Uri(EndpointUrl), AuthorizationKey)) {
            await CreateDatabase(client);
            GetDatabases(client);
         } 
      }
		
      private async static Task CreateDatabase(DocumentClient client) {
         Console.WriteLine();
         Console.WriteLine("******** Create Database *******");
			
         var databaseDefinition = new Database { Id = "mynewdb" };
         var result = await client.CreateDatabaseAsync(databaseDefinition);
         var database = result.Resource;
			
         Console.WriteLine(" Database Id: {0}; Rid: {1}", database.Id, database.ResourceId);
         Console.WriteLine("******** Database Created *******");
      }
		
      private static void GetDatabases(DocumentClient client) {
         Console.WriteLine();
         Console.WriteLine();
         Console.WriteLine("******** Get Databases List ********");
			
         var databases = client.CreateDatabaseQuery().ToList();
			
         foreach (var database in databases) {
            Console.WriteLine(" Database Id: {0}; Rid: {1}",
               database.Id, database.ResourceId);
         }  
			
         Console.WriteLine(); 
         Console.WriteLine("Total databases: {0}", databases.Count);
      }
		
   } 
}

Yukarıdaki kod derlendiğinde ve çalıştırıldığında, her iki veritabanının Veritabanı ve Kaynak Kimliklerini içeren aşağıdaki çıktıyı alırsınız. Sonunda toplam veritabanı sayısını da göreceksiniz.

******** Get Databases List ******** 
 Database Id: myfirstdb; Rid: Ic8LAA== 
 Database Id: mynewdb; Rid: ltpJAA==  
Total databases: 2