DocumentDB - Elenca database

Finora, abbiamo creato due database nel nostro account DocumentDB, il primo viene creato utilizzando il portale di Azure mentre il secondo database viene creato utilizzando .Net SDK. Ora per visualizzare questi database, puoi usare il portale di Azure.

Vai al tuo account DocumentDB nel portale di Azure e ora vedrai due database.

È anche possibile visualizzare o elencare i database dal codice utilizzando .Net SDK. Di seguito sono riportati i passaggi coinvolti.

Step 1 - Emetti una query di database senza parametri che restituisce un elenco completo, ma puoi anche passare una query per cercare un database specifico o database specifici.

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

Vedrai che esistono molti di questi metodi CreateQuery per individuare raccolte, documenti, utenti e altre risorse. Questi metodi non eseguono effettivamente la query, definiscono semplicemente la query e restituiscono un oggetto iterabile.

È la chiamata a ToList () che esegue effettivamente la query, itera i risultati e li restituisce in un elenco.

Step 2 - Chiama il metodo GetDatabases dall'attività CreateDocumentClient dopo l'istanza di DocumentClient.

Step 3 - È inoltre necessario commentare l'attività CreateDatabase o modificare l'ID del database, altrimenti verrà visualizzato un messaggio di errore relativo all'esistenza del database.

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

Di seguito è riportato il file Program.cs completo finora.

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

Quando il codice precedente viene compilato ed eseguito, riceverai il seguente output che contiene gli ID database e risorse di entrambi i database. Alla fine vedrai anche il numero totale di database.

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