DocumentDB - Crear base de datos

En este capítulo, aprenderemos cómo crear una base de datos. Para usar Microsoft Azure DocumentDB, debe tener una cuenta de DocumentDB, una base de datos, una colección y documentos. Ya tenemos una cuenta de DocumentDB, ahora para crear una base de datos tenemos dos opciones -

  • Portal de Microsoft Azure o
  • .Net SDK

Cree una base de datos para DocumentDB utilizando el portal de Microsoft Azure

Para crear una base de datos usando el portal, los siguientes son los pasos.

Step 1 - Inicie sesión en Azure Portal y verá el panel.

Step 2 - Ahora haga clic en la cuenta de DocumentDB creada y verá los detalles como se muestra en la siguiente captura de pantalla.

Step 3 - Seleccione la opción Agregar base de datos y proporcione el ID de su base de datos.

Step 4 - Haga clic en Aceptar.

Puede ver que se agrega la base de datos. Por el momento, no tiene colección, pero podemos agregar colecciones más adelante que son los contenedores que almacenarán nuestros documentos JSON. Tenga en cuenta que tiene un ID y un ID de recurso.

Cree una base de datos para DocumentDB con .Net SDK

Para crear una base de datos usando .Net SDK, los siguientes son los pasos.

Step 1 - Abra la aplicación de consola en Visual Studio del último capítulo.

Step 2- Cree la nueva base de datos creando un nuevo objeto de base de datos. Para crear una nueva base de datos, solo necesitamos asignar la propiedad Id, que estamos configurando en "mynewdb" en una tarea 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- Ahora pase esta databaseDefinition a CreateDatabaseAsync y obtenga un resultado con una propiedad Resource. Todos los métodos de creación de objeto devuelven una propiedad de recurso que describe el elemento que se creó, que en este caso es una base de datos.

Obtenemos el nuevo objeto de base de datos de la propiedad Resource y se muestra en la consola junto con el ID de recurso que DocumentDB le asignó.

Step 4 - Ahora llame a la tarea CreateDatabase desde la tarea CreateDocumentClient después de crear una instancia de DocumentClient.

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

A continuación se muestra el archivo Program.cs completo hasta ahora.

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

Cuando se compile y ejecute el código anterior, recibirá el siguiente resultado que contiene los ID de la base de datos y los recursos.

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