如何将数据库从 MongoDB Compass 转移到 MongoDB Atlas

How to transfer a database from MongoDB Compass to MongoDB Atlas

我在 MongoDB Compass v1.28.1 中有一个用于 discord bot 的现有数据库 我想将数据库中的所有数据传输到 mongodb atlas,因为它具有更广泛的功能,而不是每次我打开它时都必须等待指南针需要很长时间才能加载。但是,当我按照 Atlas 中提供的步骤进行连接时,当我将路径复制到剪贴板时应该出现的弹出窗口没有出现,并且没有任何反应。我尝试通过我在 VSCode 中的应用程序进行连接,就像我对 Compass 所做的那样,使用猫鼬。仍然没有集合正在加载或正在存储任何数据。我已经制作了在 Compass 中完美运行的模式等...

迁移到 Atlas 记录在 https://docs.atlas.mongodb.com/import/

为了节省阅读次数,您必须选择 - export/import 和 mongodump/mongorestore。

我建议先尝试 export/import。它内置于 Compass https://docs.mongodb.com/compass/current/import-export/ 中,考虑到 mongo 的有限经验,它必须更易于使用。它面向 UI,因此只需遵循文档中的 click-through 指南即可。

不幸的是,它有一些与从 BSON 到 JSON 的数据类型转换相关的限制,如果你有大量的 collections。

可能会有点乏味

在这种情况下,您将需要遵循评论中建议的 CLI mongodump/mongorestore 方式。 cmdPowerShell 控制台中都提供了这两个命令。

首先备份本地数据库https://docs.mongodb.com/v4.2/reference/program/mongodump/:

mongodump --uri="mongodb://username:password@localhost:27017/discordbot"

用户名和密码是您在 compass 中用于连接到源数据库的用户名和密码。

它将创建 dump 目录,其中包含您所有的 collections。

然后您必须将备份上传到 Atlas:

mongorestore --uri="mongodb+srv://username:password@cluster.tenant.mongodb.net/database" dump/

用户名和密码是您用来连接 atlas 集群的用户名和密码,列在“Security/Database 访问权限”部分。

您可以从 Atlas 中获取 --uri 部分的确切子域。在仪表板中单击要连接到的集群的“连接”按钮,然后在连接 pop-up:

中选择“shell”作为连接方法