使用 .NET 管理 MongoDB 数据库

适用对象: MongoDB

Azure Cosmos DB 中的 MongoDB 服务器可从 MongoDB NuGet 包中获取。

注意

示例代码片段在 GitHub 上作为 .NET 项目提供。

API for MongoDB 参考文档 | MongoDB 包 (NuGet)

为数据库命名

在 Azure Cosmos DB 中,数据库类似于命名空间。 创建数据库时,数据库名称会形成用于访问数据库资源和任何子资源的 URI 段。

下面是命名数据库时的一些快速规则:

  • 数据库名称长度必须介于 3 到 63 个字符之间
  • 数据库名称只能包含小写字母、数字或短划线 (-) 字符。
  • 数据库名称必须以小写字母或数字开头。

创建后,数据库的 URI 采用以下格式:

https://<cosmos-account-name>.documents.azure.cn/dbs/<database-name>

创建数据库实例

可以使用 MongoClient 获取数据库实例,或者如果实例不存在则创建一个。 MongoDatabase 类提供对集合及其文档的访问权限。

以下代码片段通过将文档插入集合来创建一个新数据库。 请记住,只有在这种类型的操作需要数据库时,才会创建数据库。

var client = new MongoClient(Environment.GetEnvironmentVariable("MONGO_CONNECTION"));

client.GetDatabase("adventureworks").GetCollection<BsonDocument>("products").InsertOne(new BsonDocument() { { "Name", "surfboard" } });

获取现有数据库

还可以使用 GetDatabase 方法按名称检索现有数据库,以访问其集合和文档。

var collections = client.GetDatabase("adventureworks").ListCollectionNames();
Console.WriteLine($"The database has {collections.ToList().Count} collection.");

获取所有数据库的列表

你可以使用 MongoClient 检索服务器上所有数据库的列表。

var dbFindList = client.ListDatabaseNames().ToList();

然后可以使用此方法检查数据库是否已存在。

var dbFound = dbFindList.FirstOrDefault(x => x == "adventureworks");
if (dbFound is not null)
{
    Console.WriteLine($"{dbFound} database found");
}
else
{
    Console.WriteLine($"{dbFound} database not found.");
}

删除数据库

使用 DB 类上的 DropDatabase 方法从服务器中移除数据库。

client.DropDatabase("adventureworks");

另请参阅