6

我有一个非常密集的操作,MongoCursor在循环中运行了几个小时(在通过 c# 驱动程序运行的 vb.net 应用程序上。我不太确定是什么原因导致它,但我在一段时间后遇到了异常

Cursor not found

这可能是因为光标超时,也许?有没有办法阻止它发生?如果是超时问题,我该如何设置更长的超时时间?

4

3 回答 3

16

您可以通过调用以下方法在 C# 驱动程序中禁用光标超时:

cursor.SetFlags(QueryFlags.NoCursorTimeout);

否则它将在 10 分钟不活动后关闭。

参考

于 2012-12-27T15:09:50.147 回答
2

进一步澄清JohnnyHK的答案,这是语法:

MongoCursor<BsonDocument> cursor = myCollection
                                   .Find(query)
                                   .SetSortOrder(SortBy.Ascending("TrackingNumber"))
                                   .SetFlags(QueryFlags.NoCursorTimeout);
于 2014-09-02T02:45:57.190 回答
0

我正在使用 MongoDB.Driver 版本 2.4.4 并且IFindFluent不包含SetFlags方法。改用这个:

cursor.Options.NoCursorTimeout = true;
于 2017-06-12T09:09:21.623 回答