使用mongoose将数据从一个mongodb数据库迁移到另一个mongodb数据库

时间:2014-12-08 14:11:44

标签: node.js mongodb mongoose migration

我必须将大约19k个帐户从一个数据库迁移到另一个数据库,并更改其格式等。想知道是否有人有一个可靠的方法来执行此操作,可能使用简单的node.js脚本。我在网上搜索了一个例子,但是找不到任何东西。

1 个答案:

答案 0 :(得分:1)

我会简单地使用像monk.js这样简单的东西来传播它。这是一个示例程序(此处没有shell,因此可能不是100%准确):

var monk = require('monk');
var src = monk('localhost/my-database');
var dest = monk('remote-host/remote-database');

var users = src.get('users');
var remoteUsers = dest.get('newUsers');

users.find({}, { stream: true })
.each(function(user){

    // change some data
    user.profileImage = user.image;
    delete user.legacyPropery;
    user.name = user.firstName + ' ' + user.lastName;
    return user;
})
.error(function(err){})
.success(function(){});

这是它的要点。即使你有多个你想要迁移的相关集合(比如,coments或者东西),流媒体和逐个移动听起来像是最好的选择。您可以并行运行(多个进程或在集群模块中多次使用此模块),您可以计算成功/错误等。

几乎与新数据库中的mongodump然后mongorestore相同,然后在那里运行转换器脚本。 (使用$ update或其他内容。)。