迭代mongodb游标时的错误(不是因为超时)

时间:2017-01-19 00:20:29

标签: python mongodb pymongo

在pymongo中对大型集合(250K项)运行简单查找并迭代光标。每次在不同的地方,光标迭代都会失败。关于此超时问题的网络上的所有文档都是关于超时问题的。但是,对我来说这个问题仍然存在,即使我已经禁用了超时,并使用了适度的batch_size为5。

我不认为这是pymongo问题,因为在使用其他驱动程序和客户端时也会发生这种情况。

这是pymongo代码:

cursor = collection.find({}, no_cursor_timeout=True).max_time_ms(99999999).limit(50000).batch_size(5)

这会在

的某个时候出错
pymongo.errors.OperationFailure was unhandled by user code
Message: collection dropped between getMore calls

pymongo.errors.CursorNotFound was unhandled by user code
Message: Cursor not found, cursor id: 3771706747850

可能是什么问题?

1 个答案:

答案 0 :(得分:3)

连接到数据库的另一个程序会定期删除该集合。我建议您检查MongoDB服务器日志以确认该集合已被删除。您会看到如下条目:

2017-01-18T20:40:03.783-0500 I COMMAND  [conn83] CMD: drop test.collection