3

我正在尝试使用 mongo CLI 在 MongoLab 上的两个不同数据库之间进行复制。我跟着文档 - http://docs.mongodb.org/manual/reference/method/db.copyDatabase/

  1. 连接到目标数据库。
  2. 跑了以下:

    db.copyDatabase('source-db', 'target-db', 'source-host', 'source-user', 'source-pwd')

但我总是得到:

{ "ok" : 0, "errmsg" : "unauthorized" }
4

2 回答 2

2

我遇到了同样的错误,但是在尝试复制集合时:

> db.coll1.copyTo("coll2");
Wed Jul 24 13:32:05 uncaught exception: { "ok" : 0, "errmsg" : "unauthorized" }

我的数据库位于由 MongoHQ 管理的共享服务器上,因此肯定可能存在一些权限问题,该服务不允许copyTo或其他命令运行。

一个简单的解决方法是手动获取集合中的所有对象并将它们插入到第二个集合中。这是在实施之前所做的事情copyTo

db.coll1.find().forEach(function(o) { db.coll2.insert(o); });
于 2013-07-24T11:18:45.927 回答
1

您可以改用 mongodump 和 mongorestore 命令。

mongodump -h <source_host>:<source_port> -d <source_db> -o ~/tmp/mongodump

mongorestore -h <destination_host>:<destination_port> -d <destination_db> -u <username> -p <password> ~/tmp/mongodump/<source_db>
于 2014-10-26T08:48:47.240 回答