DocumentDB - 创建数据库



本章我们将学习如何创建一个数据库。要使用 Microsoft Azure DocumentDB,您必须拥有一个 DocumentDB 帐户、一个数据库、一个集合和文档。我们已经拥有一个 DocumentDB 帐户,现在要创建数据库,我们有两个选项:

  • Microsoft Azure 门户 或
  • .Net SDK

使用 Microsoft Azure 门户为 DocumentDB 创建数据库

要使用门户创建数据库,请按照以下步骤操作。

步骤 1 - 登录 Azure 门户,您将看到仪表板。

Login to portal

步骤 2 - 现在单击已创建的 DocumentDB 帐户,您将看到如下屏幕截图所示的详细信息。

click on created DocumentDB

步骤 3 - 选择“添加数据库”选项,并为您的数据库提供 ID。

Select Add Database

步骤 4 - 单击“确定”。

Database added

您可以看到数据库已添加。目前,它没有任何集合,但我们稍后可以添加集合,这些集合将存储我们的 JSON 文档。请注意,它同时具有 ID 和资源 ID。

使用 .Net SDK 为 DocumentDB 创建数据库

要使用 .Net SDK 创建数据库,请按照以下步骤操作。

步骤 1 - 从上一章打开 Visual Studio 中的控制台应用程序。

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

步骤 3 - 现在将此 databaseDefinition 传递给 CreateDatabaseAsync,并获取具有 Resource 属性的结果。所有 create 对象方法都返回一个 Resource 属性,该属性描述已创建的项目,在本例中为数据库。

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

步骤 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 ******* 
广告