【问题标题】:Mongodb FindAll not work as exptectedMongodb FindAll 无法按预期工作
【发布时间】:2012-02-05 05:06:31
【问题描述】:
[TestMethod]
public void TestLoop()
{
    var server = MongoServer.Create(
        @"mongodb://user:password@dbh74.mongolab.com:2700/XXX");

    var database = server["XXX"];

    MongoCollection<Item> sourceCollection =database.GetCollection<Item>("Item");
    var counter = 0;
    int batchSize = 200;

    List<item> batch = new List<item>();
    foreach (var item in sourceCollection.FindAll().SetBatchSize(batchSize))
    {
        counter++;
        batch.Add(item);
    }
}

这是一个简单的测试函数,用于检索集合以进行测试。它之前工作正常,但它已损坏并引发以下错误。

无法从传输连接中读取数据:连接尝试失败,因为连接方在一段时间后没有正确响应,或者连接失败,因为连接的主机没有响应。强>

当光标想要获取下一批数据时抛出此错误。似乎连接已断开,因此我修改了代码以解决强制重新连接的问题。

[TestMethod]
public void TestLoop()
{
    var server = MongoServer.Create(
        @"mongodb://user:password@dbh74.mongolab.com:2700/XXX");

    var database = server["XXX"];

    MongoCollection<Item> sourceCollection =database.GetCollection<Item>("Item");
    var counter = 0;
    int batchSize = 200;

    List<item> batch = new List<item>();
    foreach (var item in sourceCollection.FindAll().SetBatchSize(batchSize))
    {
        //serverX.Reconnect();
        counter++;
        if (counter% batchSize == 0)
        {
           server.Reconnect();
        }

        batch.Add(item);
    }
}

我想知道我的原始代码出了什么问题。唯一不同的是我的 mongodb 托管 mongolab 刚刚将其版本提升到 2.0.2。任何提示都非常感谢。

【问题讨论】:

    标签: c# mongodb mlab


    【解决方案1】:

    已解决。这不是代码或数据库版本的问题。有应用在后台运行,消耗网络资源。

    关闭该应用程序并重新运行测试后。测试顺利。

    【讨论】:

    • 感谢您发布解决方案!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-03
    • 2013-10-06
    • 2021-11-28
    • 2013-12-23
    • 2014-12-09
    • 2016-01-13
    • 2020-09-21
    相关资源
    最近更新 更多