1
我想了解一個文檔是否存在於使用下面代碼的集合中。每當查詢沒有找到任何文檔時,我會得到一個StackOverflowException。我在做什麼錯?C#Mongodb獲取遊標數
MongoServer server = MongoServer.Create(connectionString);
MongoDatabase db = server.GetDatabase(database);
MongoCollection<Document> documents = db.GetCollection<Document>("Documents");
var query = Query.EQ("DocID", doc.DocID);
var result = documents.FindOneAs<Document>(query);
if (result != null)
{
doc.Id = result.Id;
doc.DocCreated = result.DocCreated;
doc.DocCreatedBy = result.DocCreatedBy;
doc.MergeFiles(result);
documents.Save(doc);
}
else
{
doc.Save();
}
另外我使用的是官方的mongodb c#驅動程序。
編輯: 這是堆棧跟蹤。它並沒有說太多。
在System.dll中發生未處理的類型爲「System.StackOverflowException」的異常 無法計算表達式,因爲當前線程處於堆棧溢出狀態。
編輯2: 這是我的文檔類的鏈接。 https://gist.github.com/68d38bec41ebc46f30eb
你有沒有堆棧跟蹤? – 2011-05-09 19:35:14
Twisternhra:這不是堆棧跟蹤,這是錯誤消息。如果你在Visual Studio中執行此操作(並以調試模式運行),則應該得到一個異常處理程序,其中包含「將異常詳細信息複製到剪貼板」。粘貼您在那裏複製的文本。 – 2011-05-09 20:43:09
那就是我所做的。 Visual Studio沒有給我任何關於發生什麼的信息。其實我找出了問題所在。我不小心調用了錯誤的Save方法,這讓我無限循環。由於某種原因,當我在某個地點設置斷點時,它只能通過循環。 – MattAitchison 2011-05-09 20:56:22