mongodb forEach替换文本

最近七牛云存储要收回测试域名,但是我的博客中图片使用了这些测试域名,所以要替换掉,避免图片不可访问。在文档中没有找到可以直接替换的方法,所以就使用了mongodb的forEach循环替换。 首先用正则查询法查出使用了测试域名的文档,然后forEach循环,在每个循环中使用js的正则替换函数将域名替换掉,最后再保存该文档即可。

db.getCollection('blogs').find({content:{$regex:/hopefully.qiniudn.com/}}).forEach(function(item){
    item.content = item.content.replace(/hopefully.qiniudn.com/g, 'hopefully-img.yuedun.wang')
    db.getCollection('blogs').save(item)
	print(">>", item.content);
})