如何将数据库从 MongoDB Compass 传输到 MongoDB Atlas

Pre*_*ots 4 mongodb mongodb-atlas mongodb-compass

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

Ale*_*lex 8

迁移到 Atlas 的记录位于https://docs.atlas.mongodb.com/import/

为了节省一些阅读时间,您必须选择 - 导出/导入和 mongodump/mongorestore。

我建议先尝试导出/导入。它内置于 Compass https://docs.mongodb.com/compass/current/import-export/中,考虑到 mongo 的经验有限,使用起来一定更简单。它是面向 UI 的,因此只需遵循文档中的点击指南即可。

不幸的是,它在从 BSON 到 JSON 的数据类型转换方面存在一些限制,如果您有大量集合,可能会有点乏味。

在这种情况下,您需要遵循 @barrypicker 在评论中建议的 CLI mongodump/mongorestore 方式。这两个命令都可以在cmdPowerShell控制台中使用。

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

mongodump --uri="mongodb://username:password@localhost:27017/discordbot"
Run Code Online (Sandbox Code Playgroud)

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

它将创建dump包含您拥有的所有集合的目录。

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

mongorestore --uri="mongodb+srv://username:password@cluster.tenant.mongodb.net/database" dump/
Run Code Online (Sandbox Code Playgroud)

用户名和密码是用于连接到 atlas 集群的用户名和密码,在“安全/数据库访问”部分中列出。

您可以从 Atlas 获取 --uri 部分的确切子域。在仪表板中,单击要连接的集群的“连接”按钮,然后在连接弹出窗口中选择“shell”作为连接方法:

在此输入图像描述