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

问题描述 投票:0回答:1

为了在 Azure CosmosDB 中创建 mongoDb 集合,我使用

MongoClient().getDatabase("dbName");
,然后执行插入操作,以便在最后创建我的数据库/集合。

但是,还要求创建的集合启用分析存储。我的实现是用 C# 编写的

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

提前致谢

  1. 我知道在 Azure Portal 上使用 DataExplorer 时可以设置此选项(启用分析存储)
  2. 我尝试过使用
    CreateCollection
    方法和
    CreateCollectionOptions
    来实现 MongoDb,但没有找到任何用于存储启用的东西
c# mongodb azure-cosmosdb azure-cosmosdb-mongoapi
1个回答
0
投票

要使用 C# 驱动程序创建在 Azure Cosmos DB 中启用分析存储的 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
    });
© www.soinside.com 2019 - 2024. All rights reserved.