我正在开发一个 ASP.NET Core 3.1 Web 应用程序,该应用程序需要跟踪/响应对 Azure Cosmos DB(版本 3.6)托管的 MongoDB 数据库所做的更改。\n为此,我使用更改源支持。
\n更改非常频繁:集合中的单个条目每秒约更新 10 次。
\n为了跟踪对集合所做的更改,我将受影响的条目转储到文件中(这仅用于测试目的使用以下代码
\nprivate async Task HandleChangeStreamAsync<T>(IMongoCollection<T> coll, StreamWriter file, CancellationToken cancellationToken = default)\n{\n var pipeline = new EmptyPipelineDefinition<ChangeStreamDocument<T>>()\n .Match(change => change.OperationType == ChangeStreamOperationType.Insert || \n change.OperationType == ChangeStreamOperationType.Update || \n change.OperationType == ChangeStreamOperationType.Replace)\n .AppendStage<ChangeStreamDocument<T>, ChangeStreamDocument<T>, ChangeStreamOutputWrapper<T>>(\n "{ $project: { \'_id\': 1, \'fullDocument\': 1, \'ns\': 1, \'documentKey\': 1 }}");\n\n var options = new ChangeStreamOptions\n {\n FullDocument = ChangeStreamFullDocumentOption.UpdateLookup\n …Run Code Online (Sandbox Code Playgroud) azure mongodb azure-cosmosdb azure-cosmosdb-mongoapi azure-cosmosdb-changefeed