2

mongo シェルで利用可能なcloneコマンドとcopydbコマンドがありますが、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 に答える