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

bin*_*lay 141 mongodb

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

JER*_*RRY 309

导入.bson文件非常简单:

mongorestore -d db_name -c collection_name /path/file.bson
Run Code Online (Sandbox Code Playgroud)

仅限单个集合.试试这个:

mongorestore --drop -d db_name -c collection_name /path/file.bson
Run Code Online (Sandbox Code Playgroud)

用于恢复导出的完整文件夹mongodump:

mongorestore -d db_name /path/
Run Code Online (Sandbox Code Playgroud)

  • 如果您只导出单个集合,也可以通过`mongoexport`导出的bson文件.`mongoimport`给了我"无效字符"错误.谢谢! (4认同)
  • SyntaxError:missing; 在声明@(shell)之前:1:16 (3认同)
  • 也许您可以添加这些命令,这些命令将从命令提示符而不是mongo控制台运行。这将有助于新用户 (2认同)
  • 添加到这个答案。对于那些想要远程恢复 bson 文件的人。`Mongorestore -h [host] -u [user] -p [pass] -d [database] -c [collection] [bson file]` (2认同)

Cam*_*ron 62

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
Run Code Online (Sandbox Code Playgroud)

  • 我能够使用非"转储"文件夹名称成功导入mongo数据库:`mongorestore --collection people --db accounts myDump/accounts/people.bson` (4认同)

小智 34

bsondump collection.bson > collection.json
Run Code Online (Sandbox Code Playgroud)

然后

mongoimport -d <dbname> -c <collection> < collection.json
Run Code Online (Sandbox Code Playgroud)

  • 请注意来自MongoDB的[import-export documentation](http://docs.mongodb.org/manual/core/import-export/)的警告:`mongoimport和mongoexport不能可靠地保留所有丰富的BSON数据类型,因为JSON只能代表BSON支持的类型的子集.因此,使用这些工具导出或导入的数据可能会失去一定程度的保真度 (6认同)

小智 14

仅供参考,如果有人仍在与 mongorestore 苦苦挣扎。

您必须在终端/命令提示符而不是 mongo 控制台中运行 monogorestore。

$ mongorestore -d db_name /path_to_mongo_dump/
Run Code Online (Sandbox Code Playgroud)

有关更多详细信息,您可以访问官方文档

https://docs.mongodb.com/manual/reference/program/mongorestore/


小智 10

从命令行运行以下命令,您应该在Mongo bin目录中.

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


Ani*_*iya 9

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

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

>path\to\mongorestore.exe -d dbname -c collection_name path\to\same\collection.bson
Run Code Online (Sandbox Code Playgroud)

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

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


InL*_*Law 5

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

对于 bson:

mongorestore --host m2.mongodb.net --port 27016 --ssl --username $user --password $password --authenticationDatabase $authdb -d test -c people "/home/${USER}/people.bson"
Run Code Online (Sandbox Code Playgroud)

对于以 .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"
Run Code Online (Sandbox Code Playgroud)