0
[TestMethod]
public void TestLoop()
{
var server = MongoServer.Create(
@"mongodb://user:[email protected]: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);
}
}
這是一個簡單的測試函數來檢索用於測試目的的集合。它工作正常之前,但它被打破,並拋出以下錯誤。Mongodb FindAll不能正常工作
無法讀取從傳輸連接數據:連接嘗試失敗,因爲連接的方沒有正確一段時間後響應或已建立的連接失敗,因爲連接的主機沒有反應。
由於光標想要獲得下一批數據,因此會拋出此錯誤。它似乎連接被刪除,所以我修改了我的代碼以解決強制重新連接。
[TestMethod]
public void TestLoop()
{
var server = MongoServer.Create(
@"mongodb://user:[email protected]: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。任何提示都很感激。
感謝您發佈的解決方案! – 2012-02-05 00:19:24