我试图运行一个聚合管道使用node.js和mongodb本地驱动程序在一个分片mongodb集群2分片。单配。2.6.1。操作运行了大约50分钟,并抛出错误"errmsg":"exception: getMore:光标在服务器上不存在,可能重启或超时?"我在谷歌上看到了这个链接。看起来这个问题还没有解决。顺便说一句,这个集合的大小大约是1.4亿个文档。
是否有修复/解决这个问题的方法?
这是我试图运行的管道。我不知道它在什么阶段断裂。它运行了大约50分钟,然后发生了错误。对于我尝试运行的任何聚合管道也是如此。
db.collection01.aggregate([
{$match:{"state_cd":"CA"}},
{$group : {"_id": "$pat_id" , count : {$sum : 1}}}
],
{out: "distinct_patid_count", allowDiskUse: true }
)
我的猜测是,您可以尝试降低批处理大小,使光标更"活跃"。在我们的服务器运行超过2.5个月后,我遇到了这个错误。Mongo甚至在超时之前就开始丢弃游标(我猜是某种内存错误),重新启动Mongo解决了我们的问题