C# 使用MongoDB c更新One、ReplaceOne和DeleteMany时出错#
尝试执行这些命令(UpdateOne、ReplaceOne和DeleteMany)时出现重复错误C# 使用MongoDB c更新One、ReplaceOne和DeleteMany时出错#,c#,mongodb,C#,Mongodb,尝试执行这些命令(UpdateOne、ReplaceOne和DeleteMany)时出现重复错误 var filterDelete = Builders<BsonDocument>.Filter.Not(Builders<BsonDocument>.Filter.Eq("GUIDUpdate", guidUpdate)); maintenancesCollection.DeleteMany(filterDelete); Mongo
var filterDelete = Builders<BsonDocument>.Filter.Not(Builders<BsonDocument>.Filter.Eq("GUIDUpdate", guidUpdate));
maintenancesCollection.DeleteMany(filterDelete);
MongoDB.Driver.MongoConnectionException HResult=0x80131500Mensaje=打开与服务器的连接时发生异常 服务器。Origen=MongoDB.Driver.Core Seguimiento de la pila:en MongoDB.Driver.Core.Connections.BinaryConnection.OpenHelper(CancellationToken 取消令牌)en MongoDB.Driver.Core.Connections.BinaryConnection.Open(CancellationToken 取消令牌)en MongoDB.Driver.Core.ConnectionPools.ExclusiveConnectionPool.AcquiredConnection.Open(CancellationToken 取消令牌)en MongoDB.Driver.Core.Servers.Server.GetChannel(CancellationToken 取消令牌)en MongoDB.Driver.Core.Bindings.ServerChannelSource.GetChannel(CancellationToken 取消令牌)en MongoDB.Driver.Core.Bindings.ChannelSourceHandle.GetChannel(CancellationToken 取消令牌)en MongoDB.Driver.Core.Operations.RetryableWriteContext.Create(IWriteBinding 绑定,布尔retryRequested,CancellationToken CancellationToken) EN MongoDB.Driver.Core.Operations.BulkMixedWriteOperation.Execute(IWriteBinding 绑定,取消令牌取消令牌)en MongoDB.Driver.OperationExecutor.ExecuteWriteOperation[TResult](IWriteBinding 绑定,IWriteOperation
1操作,CancellationToken
取消令牌)en
MongoDB.Driver.MongoCollectionImpl
1.ExecuteWriteOperation[TResult](IClientSessionHandle
会话,IWriteOperation1操作,取消令牌
取消令牌)en
MongoDB.Driver.MongoCollectionImpl
1.BulkWrite(IClientSessionHandle
会话、IEnumerable1请求、批量写入选项、,
取消令牌取消令牌)en
MongoDB.Driver.MongoCollectionImpl
1.c_uu显示类23_0.b_u0(IClientSessionHandle
会话)en
MongoDB.Driver.MongoCollectionImpl1.使用implicitsession[TResult](Func
2
func,CancellationToken CancellationToken)en
MongoDB.Driver.MongoCollectionImpl1.BulkWrite(IEnumerable
1请求,
BulkWriteOptions选项,CancellationToken CancellationToken)en
MongoDB.Driver.MongoCollectionBase1.c\u显示类94\u 0.b\u 0(IEnumerable
1
请求,BulkWriteOptions BulkWriteOptions)en
MongoDB.Driver.MongoCollectionBase1.UpdateOne(FilterDefinition
1
过滤器,更新定义1更新,更新选项,函数
bulkWrite)en
MongoDB.Driver.MongoCollectionBase1.UpdateOne(FilterDefinition
1
过滤器,更新定义1更新,更新选项,
取消令牌取消令牌)en
DataManager.UpdateElements.c__显示类86_0.b__0(传输开关
EN
System.Threading.Tasks.Parallel.c_uuuDisplayClass31_0
2.b_uu0(Int32
i) 嗯
System.Threading.Tasks.Parallel.c__DisplayClass17_0`1.b_u 1()
类方法中parallel.ForEach()中崩溃的代码行
var BsonData = new BsonDocument
{
{"ICurrent", Math.Round(transferSwitch.ICurrent,1)},
{"Load", load},
};
var filterId = new BsonDocument("_id", transferSwitch.Id);
var updateTransferSwitch = new BsonDocument("$set", BsonData);
transferSwitchesCollection.UpdateOne(filterId, updateTransferSwitch);
在另一个类中,方法是DeleteMany
var filterDelete = Builders<BsonDocument>.Filter.Not(Builders<BsonDocument>.Filter.Eq("GUIDUpdate", guidUpdate));
maintenancesCollection.DeleteMany(filterDelete);
如何修复这些错误
更新
为此,我使用mongoDB.Driver的2.1版本我几乎无法读取您的堆栈跟踪。您能重新格式化它吗?另外,您使用的是bulkWrite
(我在您的堆栈跟踪中看到了提及)?如果您使用的是BulkWrite,请确保您也记录了BulkWriteException详细信息。@Robertseam谢谢您的回答,制作一个过时的BulkWriteException。我使用的是mongo DBApologies的2.1版,我不熟悉c#api。我看到在打开与服务器的连接时发生异常。是否可能是server此时已关闭?搜索该错误可能会导致您找到答案..可能是这个?还是这个?服务器是否可能已关闭?否!我使用这段代码检查mogo是否处于活动状态-->bool isMongoLive=DataSource.MongoDataBase.RunCommandAsync((