【问题标题】:restore mongodb database .bson and .json files恢复 mongodb 数据库 .bson 和 .json 文件
【发布时间】:2012-12-18 03:23:11
【问题描述】:

在这个名为 my_backup 的文件夹中,我有一个 mongodb 数据库转储,其中包含我的所有 模型/集合,例如:

admins.bson
admins.metadata.json
categories.bson
categories.metadata.json
pages.bson
pages.metadata.json
.
.
.

我在 mongodb 上有一个名为 ubuntu_development 的数据库。我正在使用rails 3 + mongoid

如何将文件夹 my_backup 中的所有模型/集合导入/恢复到我的数据库 ubuntu_development

非常感谢!

【问题讨论】:

  • 谢谢!这对我来说是一场噩梦......
  • 感谢您提出这个问题。

标签: ruby-on-rails mongodb mongoid database


【解决方案1】:

从控制台执行这个命令(在这种情况下):

mongorestore my_backup --db ubuntu_development
  1. mongodbrestore 后跟my_backup,这是保存数据库先前转储的文件夹名称。
  2. --db ubuntu_development 指定我们要恢复数据的数据库名称。

【讨论】:

  • 另外,如果您还没有创建目标数据库,只需将还原文件放在您想要的数据库名称的文件夹中,然后执行mongorestore <foldername>。这将创建数据库foldername 并将所有日期放在那里:)
【解决方案2】:

导入 .bson 文件

mongorestore -d db_name -c collection_name path/file.bson

仅用于单个集合。试试这个:

mongorestore --drop -d db_name -c collection_name path/file.bson

导入 .json 文件

mongoimport --db db_name --collection collection_name --file name.json

【讨论】:

    【解决方案3】:

    你必须通过 cmd 运行这个 mongorestore 命令,而不是在 Mongo Shell 上...看看下面的命令...

    在 cmd 上运行此命令(而不是在 Mongo shell 上)

    >path\to\mongorestore.exe -d dbname -c collection_name path\to\same\collection.bson
    

    这里path\to\mongorestore.exe是mongodb bin文件夹中mongorestore.exe的路径。 dbname 是数据库的名称。 collection_name 是 collection.bson 的名称。 path\to\same\collection.bson 是该集合的路径。

    现在从 mongo shell 你可以验证数据库是否被创建(如果它不存在,同名的数据库将与集合一起创建)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-23
      • 2018-12-25
      • 2017-10-28
      • 2013-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多