我已经在服务器上使用mongodb命令导出了数据库,dump存储在.bson文件中。我需要使用mongorestore命令将其导入本地服务器。然而,它并没有工作。正确的mongorestore命令是什么?还有哪些恢复db的工具?


当前回答

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

在cmd上运行这个命令(不是在Mongo shell上)

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

这里的路径\to\mongorestore.exe是mongodb bin文件夹中的mongorestore.exe路径。Dbname为数据库名称。Collection_name是collection.bson的名称。相同路径\ \ \集合。Bson是到集合的路径。

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

其他回答

如果你能远程访问,你就能做到

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"

在mongodb 3.0或以上版本中,我们可以指定数据库名进行恢复。假设您位于包含bson文件的根目录

./
a.bson
b.metadata.bson
...

剧本是这样的

for FILENAME in *; do mongorestore -d <db_name> -c "${FILENAME%.*}" $FILENAME; done

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

在cmd上运行这个命令(不是在Mongo shell上)

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

这里的路径\to\mongorestore.exe是mongodb bin文件夹中的mongorestore.exe路径。Dbname为数据库名称。Collection_name是collection.bson的名称。相同路径\ \ \集合。Bson是到集合的路径。

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

Mongorestore -d db_name /path/

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

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

然后执行上述命令。

我用过这个:

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

1.从属性中复制文件路径和文件名(尝试将所有bson文件放在不同的文件夹中), 2.反复使用此方法只更改文件名。