DocumentDB - Criar Banco de Dados

Neste capítulo, aprenderemos como criar um banco de dados. Para usar o Microsoft Azure DocumentDB, você deve ter uma conta DocumentDB, um banco de dados, uma coleção e documentos. Já temos uma conta DocumentDB, agora para criar o banco de dados temos duas opções -

  • Portal do Microsoft Azure ou
  • .Net SDK

Crie um banco de dados para DocumentDB usando o Portal do Microsoft Azure

Para criar um banco de dados usando o portal, a seguir estão as etapas.

Step 1 - Faça login no portal do Azure e você verá o painel.

Step 2 - Agora clique na conta do Banco de Dados de Documentos criada e você verá os detalhes conforme mostrado na imagem a seguir.

Step 3 - Selecione a opção Adicionar banco de dados e forneça o ID para seu banco de dados.

Step 4 - Clique em OK.

Você pode ver que o banco de dados foi adicionado. No momento, ele não tem coleção, mas podemos adicionar coleções posteriormente, que são os contêineres que irão armazenar nossos documentos JSON. Observe que ele tem um ID e um ID de recurso.

Crie um banco de dados para DocumentDB usando .Net SDK

Para criar um banco de dados usando .Net SDK, a seguir estão as etapas.

Step 1 - Abra o aplicativo de console no Visual Studio do último capítulo.

Step 2- Crie o novo banco de dados criando um novo objeto de banco de dados. Para criar um novo banco de dados, precisamos apenas atribuir a propriedade Id, que definimos como “mynewdb” em uma tarefa CreateDatabase.

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

Step 3- Agora passe esta definição de banco de dados para CreateDatabaseAsync e obtenha um resultado com uma propriedade de Recurso. Todos os métodos de criação de objeto retornam uma propriedade Resource que descreve o item que foi criado, que neste caso é um banco de dados.

Obtemos o novo objeto de banco de dados da propriedade Resource e ele é exibido no console junto com a ID do recurso que o Banco de Dados de Documentos atribuiu a ele.

Step 4 - Agora chame a tarefa CreateDatabase a partir da tarefa CreateDocumentClient depois que DocumentClient for instanciado.

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

A seguir está o arquivo Program.cs completo até agora.

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

Quando o código acima for compilado e executado, você receberá a seguinte saída que contém os IDs do banco de dados e dos recursos.

******** Create Database ******* 
 Database Id: mynewdb; Rid: ltpJAA== 
******** Database Created *******