2

mongo shell 中有可用的clonecopydb命令,如何在 mongo 节点本机驱动程序(mongodb)中访问它们?

这就是我尝试过的:

我发现了db.command可用的节点本机 mongodb 驱动程序。阅读文档我尝试了这段代码(db目标数据库名为“newdb”)

db = db.db('newdb');
db.addUser('newdbuser', 'newdbpass', {}, function (err) {
    err && console.log(err);
    console.log(authUrlForDb(config.MONGO_HOSTS));
    db.command({
        copydb: 1,
        fromhost: config.MONGO_HOSTS,
        fromdb: config.MOTHER_DB, // some database name
        todb: 'newdb',
        username: config.ADMIN_USERNAME,  //
        key: {
            username: config.ADMIN_USERNAME,
            password: config.ADMIN_PASSWORD
        }
    }, function (err, res) {
        console.log(config.MONGO_HOSTS);
        console.log(err, res);
        db.close();
    });
});

失败并记录以下内容:

hostname1.host.io,hostname2.host.io
null { ok: 0, errmsg: 'access denied; use admin db' }
4

2 回答 2

3

你试过使用db.admin().command吗?

于 2013-05-16T04:37:21.523 回答
0

伙计,你基本上应该试试

use admin;

db.runCommand({
  copydb: 1,
  fromhost: "myhost",
  username:"azureuser",
  fromdb: "test",
  todb: "test"
})

mongo 所要求的只是在运行这样的命令之前切换到“admin”db,然后它就会运行良好。

于 2014-03-07T11:12:35.543 回答