首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MongoError:光标被杀死或超时

MongoError:光标被杀死或超时
EN

Stack Overflow用户
提问于 2016-05-01 02:38:38
回答 1查看 1.4K关注 0票数 2

我正在尝试通过流式传输、暂停、处理和恢复来处理MongoDB数据库中的数据。每个文档的处理可能需要2-3分钟,每个文档由集群中的一个工作人员完成。我在master中流式传输文档,然后将文档发送到workers进行处理。问题是我在流中(或关于10+文档) 20-30分钟内收到错误MongoError: cursor killed or timed out。当处理时间低于此时间时,我曾成功地使用过此方法。

配置:node-mongodb-native@1.4.40mongodb version 3.0.5node 0.10

代码语言:javascript
运行
复制
MongoClient.connect(config.mongodb, function(err, db) {
  if (err) helper.logError(err)
  var collection = db.collection('collectionName');
  stream = collection.find(condition).stream();
  stream.on("data", function(doc) {
    stream.pause();
    doSomeProcessing().then(function(){
      stream.resume()
    });
  });
});
EN

回答 1

Stack Overflow用户

发布于 2016-05-01 02:56:31

您可以通过调用addCursorFlagfind()返回的游标添加'noCursorTimeout'标志来禁用游标超时

代码语言:javascript
运行
复制
stream = collection.find(condition).addCursorFlag('noCursorTimeout', true).stream();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36958743

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档