我可以使用 MongoClient().getDatabase( "dbName" 创建一个集合吗?,是否启用了分析存储?(C#)



为了在Azure CosmosDB中创建mongoDb集合,我使用MongoClient().getDatabase("dbName");然后执行插入操作,以便在最后创建我的db/collection。

然而,还需要创建的集合将启用分析存储。我的实现是用c#写的

我的问题是,我如何使用MongoClient创建一个集合,将有分析存储选项设置为true?

Thanks in advance

  1. 我知道在Azure上使用DataExplorer时可以设置此选项(启用分析存储)门户
  2. 我给了一个尝试,并使用CreateCollection方法与CreateCollectionOptions为MongoDb,但它不是在那里找到了存储启用

要在Azure Cosmos DB中使用c#驱动程序创建一个启用分析存储的MongoDB集合,您可以在创建集合时设置分析存储属性。下面是一个示例代码片段:

using MongoDB.Driver;
using MongoDB.Bson;
using Microsoft.Azure.CosmosDB.MongoDB.BulkExecutor;
using Microsoft.Azure.CosmosDB.MongoDB.BulkExecutor.BulkImport;
string connectionString = "your_connection_string_here";
string databaseName = "your_database_name_here";
string collectionName = "your_collection_name_here";
MongoClientSettings settings = MongoClientSettings.FromUrl(new MongoUrl(connectionString));
MongoClient client = new MongoClient(settings);
IMongoDatabase database = client.GetDatabase(databaseName);
BsonDocument collectionOptions = new BsonDocument
{
{ "analyticalStoreEnabled", true }
};
database.CreateCollection(collectionName, new CreateCollectionOptions
{
StorageEngine = new BsonDocument
{
{ "wiredTiger", new BsonDocument
{
{ "configString", "block_compressor=zstd" }
}
}
},
Validator = new BsonDocument("$jsonSchema", new BsonDocument
{
{ "bsonType", "object" }
}),
AutoIndexId = true,
MaxSize = null,
Capped = false,
Collation = null,
AnalyticalStoreOptions = collectionOptions
});