如何使用C#Mongo驱动程序在Cosmos DB上自动创建集合

时间:2019-04-25 10:28:44

标签: c# mongodb azure-cosmosdb

我正在尝试从MongoDB Atlas迁移到Azure CosmosDB,但是我遇到了一个问题,即在第一次插入文档时集合将无法创建自己。我收到此错误。

“共享吞吐量收集应具有分区键”

我可以从azure门户中看到如何执行此操作,并且当我手动配置集合时它确实可以工作。但是我希望它能够在普通的MongoDB上正常工作,即如果不存在则自动创建集合。

这是我要尝试做的最简单的例子。


    public class Repository
    {
        protected readonly IMongoCollection<TEntity> collection;

        public Repository(string collectionName, IOptions<MongoDbSettings> dbSettings)
        {
            var client = new MongoClient(dbSettings.Value.ConnectionString);
            var database = client.GetDatabase(dbSettings.Value.Database);
            if (database != null) collection = database.GetCollection<TEntity>(collectionName);
        }

        public virtual async Task<TEntity> Create(TEntity entity)
        {
            await collection.InsertOneAsync(entity);
            return entity;
        }
    }

是否可以在mongodb驱动程序中设置分区键以满足cosmosdb?还是我要解决所有这些错误?

0 个答案:

没有答案