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, una base de datos, una colección y documentos de DocumentDB. Ya tenemos una cuenta en DocumentDB, ahora tenemos dos opciones para crear la base de datos:

  • 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, siga estos pasos.

Paso 1 – Inicie sesión en Azure Portal y verá el panel.

Iniciar sesión en el portal

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

haga clic en el DocumentDB creado

Paso 3 – Seleccione la opción «Agregar base de datos» e ingrese su ID de base de datos.

Seleccione Agregar base de datos.

Paso 4 – Haga clic en Aceptar.

Base de datos agregada

Puede ver que se ha agregado la base de datos. No tiene una colección en este momento, pero podemos agregar colecciones más adelante, que son contenedores que contendrán nuestros documentos JSON. Tenga en cuenta que tiene tanto un ID como un ID de recurso.

Creación de una base de datos para DocumentDB con.Net SDK

Para crear una base de datos utilizando.Net SDK, siga estos pasos.

Paso 1 – Abra la aplicación de consola en Visual Studio del capítulo anterior.

Paso 2 – Cree una 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 establecemos en «mynewdb» en la 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 *******"); 
} 

Paso 3 – Ahora pase esta definición de base de datos a CreateDatabaseAsync y obtenga el resultado con la propiedad Resource. Todos los métodos de creación de objetos devuelven una propiedad de recurso que describe el elemento creado, que en este caso es la 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ó.

Paso 4 – Ahora llame a la tarea CreateDatabase desde la tarea CreateDocumentClient después de crear la 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 en este momento.

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 la base de datos y los ID de recursos.

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

🚫