MongoDB C# Driver 'Cursor not found'

2019-05-02 00:28发布

I have quite an intensive operation that has a MongoCursor run in a loop for a few hours (on a vb.net app running via the c# driver. I'm not too sure what causes it but I run into an exception after a while

Cursor not found

This could be because of a cursor timeout, perhaps? Is there a way I can stop it happening? If its a timeout issue how do I place a longer timeout?

3条回答
我欲成王,谁敢阻挡
2楼-- · 2019-05-02 00:43

Further clarifying JohnnyHK's answer, this is the syntax:

MongoCursor<BsonDocument> cursor = myCollection
                                   .Find(query)
                                   .SetSortOrder(SortBy.Ascending("TrackingNumber"))
                                   .SetFlags(QueryFlags.NoCursorTimeout);
查看更多
爷、活的狠高调
3楼-- · 2019-05-02 00:44

You can disable the cursor's timeout in the C# driver by calling:

cursor.SetFlags(QueryFlags.NoCursorTimeout);

Otherwise it will be closed after 10 minutes of inactivity.

Reference

查看更多
女痞
4楼-- · 2019-05-02 00:45

I'm using MongoDB.Driver version 2.4.4 and IFindFluent is not containing SetFlags method. using this instead:

cursor.Options.NoCursorTimeout = true;
查看更多
登录 后发表回答