在光标上执行 for Each 函数时出现更多错误
getMore error when performing forEach function over cursor
Hi stackoverflow community,
我在对我的一个集合执行更新时遇到问题。
问题是当我运行我的函数时,大约 10-15 分钟后出现以下错误:
我使用的 mongo 版本是:2.4.6
Error: getMore: cursor didn't exist on server, possible restart or timeout? src/mongo/shell/query.js:113
更新不是那么复杂,但它很昂贵,因为首先我必须找到所有满足标准的文档,并使用 forEach 函数遍历每个文档以从另一个集合中获取值,一旦我有了这个值,我就会保存 de 文档并在其中一个字段上执行和更新。这是代码
db.events.find({'$or':[{'event.type':'EXBC'},{'event.type':'ENBC'}],'event.value.major':{'$exists':true}}).forEach(function (doc1) {
var doc2 = db.regions.findOne({ 'beaconId.major': doc1.event.value.major,'beaconId.minor':doc1.event.value.minor,'group.uuid':doc1.event.value.uuid });
if (doc2 != null) {
doc1.event.value.beacon = doc2._id;
db.events.save(doc1);
//OPTIONAL, I THINK IT TAKES TOO MUCH TIME THIS WAY
if(doc1.event.type == "EXBC"){
db.events.update({'_id':doc1._id}, {$set:{'event.source':'SDK','event.type':'MOB','event.extType':'BCN','event.action':'EXT'},
$unset:{'event.value.major':'','event.value.minor':'','event.value.uuid':''}});
}
else{
db.events.update({'_id':doc1._id}, {$set:{'event.source':'SDK','event.type':'MOB','event.extType':'BCN','event.action':'ENT'},
$unset:{'event.value.major':'','event.value.minor':'','event.value.uuid':''}});
}
}
});
如果有人能帮助我弄清楚我做错了什么,我将不胜感激。
您的意思是在创建初始光标 10-15 分钟后出现错误吗? 如果是这样,MongoDB会在10分钟不活动后关闭服务器端的光标,以避免内存泄漏。
相关文章:
- XMLHttpRequest:需要使用ajax中的成功和错误函数
- Javascript 错误:函数预期
- 未捕获的引用错误:函数未使用 onchange 定义
- 如何让jQueryajax执行错误函数
- 未定义未捕获的引用错误函数
- $.ajax在跨域url上不返回错误函数
- jQuery.ajax+php5.3-始终执行错误函数
- javascript未捕获类型错误函数ajax
- 在 Promise 调用的错误函数回调后附加对象的用法是什么
- Ajax 请求在 HandleUnauthorizedRequest 之前命中错误函数
- 引用错误:“函数”未定义
- 黑莓 10 级联 ajax 调用从 javascript 总是执行错误函数
- Ajax 调用弹簧控制器回调错误函数
- 未定义未捕获的引用错误函数
- 主干.js - n捕获异常:语法错误:函数构造函数:无法编译函数
- 引用错误:函数未定义错误
- “未捕获的引用错误:(函数)未定义”与焦点事件
- JavaScript 未捕获的引用错误函数未定义 单击时
- 引用错误:函数未定义
- 类型错误: [函数名称] 不是函数,在猫鼬和节点.js中