如何在mongodb上导入.bson文件格式


162

我已经使用mongodump命令在服务器上导出了数据库,转储存储在.bson文件中。我需要使用mongorestore命令将其导入本地服务器。但是,它不起作用。什么是正确的mongorestore命令,其他是tools to restore db什么?

Answers:


342

导入.bson文件非常简单:

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

仅针对单个集合。尝试以下操作:

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

要还原由导出的完整文件夹mongodump

mongorestore -d db_name /path/

4
mongoexport如果仅导出单个集合,则对于通过导出的bson文件也很有用。mongoimport给我“无效字符”错误。谢谢!
divillysausages,2013年

4
语法错误:丢失;声明前@(shell):1:16
151291

3
也许您可以添加这些命令,这些命令将从命令提示符而不是mongo控制台运行。这将对新用户有所帮助
Dreams'Sep

2
添加到此答案。对于那些想要远程还原bson文件的用户。Mongorestore -h [host] -u [user] -p [pass] -d [database] -c [collection] [bson file]
Jpepper

1
由于它的工作对我的整个文件夹从tar.gz的extrackting后
布拉汉姆开发亚达夫

63

mongorestore是用于导入由转储的bson文件的工具mongodump

文档

mongorestore从mongodump获取输出并还原它。

例:

# On the server run dump, it will create 2 files per collection
# in ./dump directory:
# ./dump/my-collection.bson
# ./dump/my-collection.metadata.json
mongodump -h 127.0.0.1 -d my-db -c my-collection

# Locally, copy this structure and run restore.
# All collections from ./dump directory are picked up.
scp user@server:~/dump/**/* ./
mongorestore -h 127.0.0.1 -d my-db

我需要保留dump/dbName/collectionName.bson文件夹结构吗?我使用mongodump,但是现在我想mongorestore在远程Linux机器上使用它导入。
凯文·梅瑞迪斯

@Kevin:老实说,我不确定,但我会这样假设。使用FTP程序传输文件以及文件夹结构?
卡梅伦

5
我能够使用非“ dump”文件夹名称成功导入mongo db:mongorestore --collection people --db accounts myDump/accounts/people.bson
Kevin Meredith 2013年

35
bsondump collection.bson > collection.json

然后

mongoimport -d <dbname> -c <collection> < collection.json

7
请注意MongoDB 进出口文档中的警告:mongoimport and mongoexport do not reliably preserve all rich BSON data types because JSON can only represent a subset of the types supported by BSON. As a result, data exported or imported with these tools may lose some measure of fidelity.
LucasB

10

从命令行运行以下命令,您应该位于Mongo bin目录中。

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


9

您必须通过cmd而不是在Mongo Shell上运行此mongorestore命令。

在cmd上运行此命令(不在Mongo Shell上)

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

path\to\mongorestore.exemongorestore.exemongodb 的内部bin文件夹的路径。dbname是数据库的名称。collection_name是collection.bson的名称。path\to\same\collection.bson是到达该集合的路径。

现在,您可以从mongo shell验证是否已创建数据库(如果不存在,则将使用collection创建具有相同名称的数据库)。



2

如果您可以远程访问,就可以做到

对于bson:

mongorestore --host m2.mongodb.net --port 27016 --ssl --username $user --password $password --authenticationDatabase $authdb -d test -c people "/home/${USER}/people.bson"

对于以.gz(gzip)格式压缩的bson:

mongorestore --host m2.mongodb.net --port 27016 --ssl --username $user --password $password --authenticationDatabase $authdb -d test -c people --gzip --dir "/home/${USER}/people.bson.gz"

1

mongorestore -d db_name / path /

确保您在mongoDb的bin文件夹中运行此查询

C:\ Program Files \ MongoDB \ Server \ 4.2 \ bin-

然后运行上面的命令。


0

我用了这个:

mongorestore -d databasename -c file.bson fullpath/file.bson

1.从属性中复制文件路径和文件名(尝试将所有bson文件放在不同的文件夹中),2.仅在更改文件名的情况下一次又一次地使用它。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.