我正在尝试从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?还是我要解决所有这些错误?