MongoDB和将BSON文件插入数据库

8
我收到了bson文件的数据转储。在Mongo数据库中,存在数据库和集合。这些是对数据库中每个集合的更新。因此,在给定目录中,每个集合大约有30个bson文件。
从命令行开始,我正在使用Ubuntu,如何追加和加载?Mongo位于我的本地主机上,没有用户名或密码。
谢谢。

据我所知,.bson文件是由mongodump创建的,它就是整个数据库的备份。那么你所说的“更新”到每个集合是什么意思呢?难道备份中的所有集合都是需要替换现有mongo实例中的“已更新”的集合吗? - Anuvrat Parashar
6个回答

5
花了我一段时间才克服这种错误的借口。最终,我去了我的"dump"文件夹外的目录,并执行了以下操作... 完整的数据库恢复:
mongorestore --drop dump/mydb
请注意,mongodump操作将为每个数据库在其创建的dump文件夹内创建单独的文件夹,因此您需要指定完整的相对路径,如上所示。
对于单个集合:
mongorestore --drop -d mydb -c mycollection dump/mydb/mycollection.bson

3
通常的语法是:

mongorestore -d dbname -c collectionname dir/file.bson

2

我尝试过了。这是我得到的错误。mongorestore -d mydir 已连接到:127.0.0.1 不知道如何处理文件[dump]。 - Tampa
1
“-d” 用于指定要还原的数据库,为什么你要将一个目录传递给它呢? 同时,你还需要传递其他必要的参数,例如用户名、密码、集合等。 - Anuvrat Parashar

1

0

1) 在CMD中进入“dump”文件夹所在的目录。

2) 运行mongorestore命令。


0

由于Mongo恢复不会更新当前记录,因此这不是一个好选择。

Mongorestore仅如下附加新记录:

mongorestore只是使用要恢复的数据进行插入;如果存在相同的_id等现有数据,则不会被替换。

您可能希望在所选语言中构建BSON解析器,并制作比mongorestore更复杂的工具,因为mongorestore仅设计用于“恢复”(正如名称所暗示的那样)数据库/集合,您需要编写一些更复杂的内容才能实现您想要的功能,这严重依赖于您的服务器端语言。

编辑

实际上最好使用mongoexport和mongoimport来完成此操作:

http://www.mongodb.org/display/DOCS/Import+Export+Tools#ImportExportTools-mongoimport

使用mongoexport,您可以导出JSON文件并为其提供命令行进行upserts。因此,我个人会回到给出此文件的人那里,并告诉他们您实际上想要一个mongo导出文件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接