Documentdb 简明教程

DocumentDB - Create Database

在本章中,我们将学习如何新建一个数据库。要使用 Microsoft Azure DocumentDB,你必须有一个 DocumentDB 帐户、一个数据库、一个集合和文档。我们已经有了 DocumentDB 帐户,现在我们有两种选择来创建数据库 −

  1. Microsoft Azure Portal or

  2. .Net SDK

Create a Database for DocumentDB using the Microsoft Azure Portal

若要使用门户创建数据库,以下为步骤。

Step 1 − 登录到 Azure 门户,你将看到仪表板。

login

Step 2 − 现在单击已创建的 DocumentDB 帐户,你将看到详细信息,如下图所示。

create database

Step 3 − 选择“添加数据库”选项并提供数据库 ID。

add database

Step 4 - 单击“确定”。

database added

您会看到添加了数据库。目前,尚未添加任何集合,但稍后我们可以添加将用于存储 JSON 文档的容器集合。请注意,它同时具有 ID 和资源 ID。

Create a Database for DocumentDB Using .Net SDK

如需使用 .Net SDK 创建数据库,请执行以下步骤。

Step 1 − 从上一章中在 Visual Studio 中打开控制台应用程序。

Step 2 − 创建新的数据库对象来创建新数据库。如需创建新数据库,我们只需分配 Id 属性,我们将其设置为 CreateDatabase 任务中的“mynewdb”。

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 − 现在将此 databaseDefinition 传递给 CreateDatabaseAsync,然后以资源属性的形式获取结果。所有创建对象的方法都返回一个描述已创建项(在本例中为数据库)的资源属性。

从资源属性中获取新的数据库对象,并将其与 DocumentDB 分配给它的资源 ID 一起显示在控制台上。

Step 4 − 现在,在实例化 DocumentClient 后,从 CreateDocumentClient 任务调用 CreateDatabase 任务。

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

以下是迄今为止完整的 Program.cs 文件。

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

   }
}

当编译并执行上述代码时,您会收到以下输出,其中包含数据库和资源 ID。

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