我有一个长时间运行的操作,插入数千个条目集,每次使用下面的代码插入一个集合。 运行一段时间后,collection.Update()方法冻结(不返回),整个过程停止运行。
在任何地方找不到任何合理的解释。
我看过mongod日志,没什么不寻常的,它只是停止接收来自这个过程的请求。
Mongo版本:2.4.1,C#驱动版本:1.8.0
using (_mongoServer.RequestStart(_database))
{
var collection = GetCollection<BsonDocument>(collectionName);
// Iterate over all records
foreach (var recordToInsert in recordsDescriptorsToInsert)
{
var query = new QueryDocument();
var update = new UpdateBuilder();
foreach (var property in recordToInsert)
{
var field = property.Item1;
var value = BsonValue.Create(property.Item2);
if (keys.Contains(field))
query.Add(field, value);
update.Set(field, value);
}
collection.Update(query, update, UpdateFlags.Upsert); // ** NEVER RETURNS **
}
}