背景
在使用Robomongo进行查询时, 经常遇到执行结果不完整的问题, 即一个循环保存, 比如应该执行1000次, 结果只执行了200次, 而且没有任何错误报出, 这其实是因为Robomongo执行超时了, 默认为10秒
解决方案
- 找到配置文件
Windows
大于0.8
C:\Users<user>.config\robomongo\x.x.x\robomongo.json
0.8.x
C:\Users<user>.config\robomongo\robomongo.json
MAC
大于0.8
/Users/<user>/.config/robomongo/x.x.x/robomongo.json
0.8.x
/Users/<user>/.config/robomongo/robomongo.json
Linux
大于0.8
/home/<user>/.config/robomongo/x.x.x/robomongo.json
0.8.x
/home/<user>/.config/robomongo/robomongo.json
- 修改shellTimeoutSec值, 为60或更高, 单位为秒
- 保存后, 重新打开Robomongo
如果就是需要很长时间, 可以考虑使用批操作执行
var bulk = db.xxx.initializeUnorderedBulkOp();
db.xxx.find({}).forEach(function(obj){
bulk.find( { _id: obj._id } ).update({ $set: { xxx: obj.xxx} });
// or
bulk.insert(obj);
});
bulk.execute();
网友评论