CosmosDb 3.2 - 没有聚合请求的聚合失败
CosmosDb 3.2 - aggregate failed without aggregate request
我有一个 .netcore 3.1 应用程序,它使用 mongodb 驱动程序与 CosmosDb 3.2 数据库交互。
例如这个简单的请求:
public void Insert(Core.Entity.Project project)
{
var _project = _mapperCoreToInfrastructure.MapProject(project);
_retryPolicy.Execute(() =>
{
_mongoCollection.InsertOne(_project);
});
}
运行 这段代码显示了以下问题:
Command aggregate failed: The aggregation pipeline is not enabled for
this account. Please see https://aka.ms/mongodb-aggregation for
details..
我的存储库中没有任何聚合请求,我不想在 azure 上激活聚合功能。
这是我在 IOC 容器中的 MongoClient
配置:
var url = new MongoUrl(Configuration.GetValue<string>("MongoConnection"));
var mongoClientSettings = MongoClientSettings.FromUrl(url);
mongoClientSettings.RetryWrites = false;
mongoClientSettings.ClusterConfigurator = clusterConfigurator =>
{
clusterConfigurator.Subscribe<CommandSucceededEvent>(e =>
{
telemetryClient.TrackDependency("MongoDb", e.CommandName, e.Reply.ToString(), DateTime.Now.Subtract(e.Duration), e.Duration, true);
});
clusterConfigurator.Subscribe<CommandFailedEvent>(e =>
{
telemetryClient.TrackDependency("MongoDb", $"{e.CommandName} - {e.ToString()}", e.Failure.ToString(), DateTime.Now.Subtract(e.Duration), e.Duration, false);
});
};
services.AddSingleton<IMongoClient>(new MongoClient(mongoClientSettings));
为什么我会遇到这个问题,如何解决?
我找到了答案。我在 insert()
之前有一个 count()
操作,并遵循 this 文档,它导致聚合请求。
我有一个 .netcore 3.1 应用程序,它使用 mongodb 驱动程序与 CosmosDb 3.2 数据库交互。 例如这个简单的请求:
public void Insert(Core.Entity.Project project)
{
var _project = _mapperCoreToInfrastructure.MapProject(project);
_retryPolicy.Execute(() =>
{
_mongoCollection.InsertOne(_project);
});
}
运行 这段代码显示了以下问题:
Command aggregate failed: The aggregation pipeline is not enabled for this account. Please see https://aka.ms/mongodb-aggregation for details..
我的存储库中没有任何聚合请求,我不想在 azure 上激活聚合功能。
这是我在 IOC 容器中的 MongoClient
配置:
var url = new MongoUrl(Configuration.GetValue<string>("MongoConnection"));
var mongoClientSettings = MongoClientSettings.FromUrl(url);
mongoClientSettings.RetryWrites = false;
mongoClientSettings.ClusterConfigurator = clusterConfigurator =>
{
clusterConfigurator.Subscribe<CommandSucceededEvent>(e =>
{
telemetryClient.TrackDependency("MongoDb", e.CommandName, e.Reply.ToString(), DateTime.Now.Subtract(e.Duration), e.Duration, true);
});
clusterConfigurator.Subscribe<CommandFailedEvent>(e =>
{
telemetryClient.TrackDependency("MongoDb", $"{e.CommandName} - {e.ToString()}", e.Failure.ToString(), DateTime.Now.Subtract(e.Duration), e.Duration, false);
});
};
services.AddSingleton<IMongoClient>(new MongoClient(mongoClientSettings));
为什么我会遇到这个问题,如何解决?
我找到了答案。我在 insert()
之前有一个 count()
操作,并遵循 this 文档,它导致聚合请求。