如何用C#的MongoClient创建启用分析存储的Azure Cosmos DB MongoDB集合
在C#中通过MongoClient为Azure Cosmos DB MongoDB集合启用分析存储
Azure Cosmos DB的MongoDB API支持通过扩展属性配置原生MongoDB API未暴露的Azure特定功能,分析存储就属于这类功能。你可以通过在CreateCollectionOptions中注入Azure专属的扩展参数来实现,具体操作如下:
构造包含分析存储配置的创建选项
启用分析存储需要指定analyticalStorageTtl参数(该值表示分析存储数据的保留时长,设为-1代表永久保留,也可设置具体秒数)。这个参数是Azure的扩展属性,需要通过CreateCollectionOptions的ExtraElements属性注入:var client = new MongoClient("你的Cosmos DB MongoDB连接字符串"); var database = client.GetDatabase("dbName"); var createOptions = new CreateCollectionOptions { // 可添加分片键等原生MongoDB配置 ExtraElements = new BsonDocument { ["analyticalStorageTtl"] = -1 // 按需调整保留时长,-1为永久保留 } }; // 创建带分析存储的集合 await database.CreateCollectionAsync("collectionName", createOptions);验证配置状态
集合创建后,可通过Azure门户的数据资源管理器查看分析存储是否启用,也可通过MongoDB命令验证扩展属性:var collections = await database.ListCollectionsAsync(new ListCollectionsOptions()); await foreach (var coll in collections.ToAsyncEnumerable()) { if (coll["name"] == "collectionName") { Console.WriteLine(coll["options"]); // 输出中可看到analyticalStorageTtl字段 } }关键注意事项
- 分析存储只能在集合创建时配置,创建完成后无法通过MongoDB API修改,如需修改只能通过Azure门户或Azure Cosmos DB原生SDK操作。
- 确保你的Cosmos DB账户已启用分析存储功能(部分区域默认支持,若未启用需在门户中开启账户级别的分析存储)。
内容的提问来源于stack exchange,提问作者Tomasz Lubocki
相关产品推荐
相关产品推荐

