恢复现有 mongodb 中的单个集合
Restoring single collection in an existing mongodb
我无法将单个集合恢复到现有数据库中,这让我非常失败。
我 运行ning Ubuntu 14.04 mongo 版本 2.6.7
有一个 dump/mydbname/contents.bson 基于我的主目录。
如果我运行
mongorestore --collection contents --db mydbname
然后我得到:
connected to: 127.0.0.1
don't know what to do with file [dump]
如果我在路径中添加
mongorestore --collection contents --db mydbname --dbpath dump/mydbname
然后我得到
If you are running a mongod on the same path you should connect to that instead of direct data file access
我已经尝试了各种其他组合、选项等,但无法解开谜题,所以我来社区寻求帮助!
如果要恢复单个集合,则必须指定集合的转储文件。集合的转储文件位于 'dump/dbname/' 文件夹中。因此,假设您的转储文件夹位于您当前的工作目录中,该命令将类似于 -
mongorestore --db mydbname --collection mycollection dump/mydbname/mycollection.bson
如果要恢复多个集合,可以使用循环:
for file in "$HOME/mongodump/dev/<your-db>/"* ; do
if [[ "$file" != "*metadata*" && "$file" != "system.*" && "$file" != "locks.*" ]]; then
file="$(basename "$file”)"
mongorestore \
--db cdt_dev \
--collection "${file%.*}" \ # filename w/o extension
--host "<your-host>" \
--authenticationDatabase "<your-auth-db>" \
-u "user" \
-p "pwd" \
"$HOME/mongodump/dev/<your-db>/$file"
fi;
done
恢复 mongodb 中特定集合的步骤。
1) 转到转储文件夹所在的目录。
2) 根据您的数据库名称和您的集合名称修改执行以下命令。
mongorestore --db mydbname --collection mycollection dump/mydbname/mycollection.bson
如果你得到Failed: yourdbname.collection.name: error creating indexes for collection.name: createIndex error: The field 'safe' is not valid for an index specification error
,那么你可以使用下面的命令:
mongorestore --db mydbname --collection mycollection dump/mydbname/mycollection.bson --noIndexRestore
我认为现在可以使用 --nsInclude
选项完成此操作:
mongorestore --nsInclude test.purchaseorders dump/
dump/
是包含 mongodump 数据的文件夹,test
是数据库,purchaseorders
是集合。
https://docs.mongodb.com/manual/reference/program/mongorestore/
我无法将单个集合恢复到现有数据库中,这让我非常失败。 我 运行ning Ubuntu 14.04 mongo 版本 2.6.7 有一个 dump/mydbname/contents.bson 基于我的主目录。
如果我运行
mongorestore --collection contents --db mydbname
然后我得到:
connected to: 127.0.0.1
don't know what to do with file [dump]
如果我在路径中添加
mongorestore --collection contents --db mydbname --dbpath dump/mydbname
然后我得到
If you are running a mongod on the same path you should connect to that instead of direct data file access
我已经尝试了各种其他组合、选项等,但无法解开谜题,所以我来社区寻求帮助!
如果要恢复单个集合,则必须指定集合的转储文件。集合的转储文件位于 'dump/dbname/' 文件夹中。因此,假设您的转储文件夹位于您当前的工作目录中,该命令将类似于 -
mongorestore --db mydbname --collection mycollection dump/mydbname/mycollection.bson
如果要恢复多个集合,可以使用循环:
for file in "$HOME/mongodump/dev/<your-db>/"* ; do
if [[ "$file" != "*metadata*" && "$file" != "system.*" && "$file" != "locks.*" ]]; then
file="$(basename "$file”)"
mongorestore \
--db cdt_dev \
--collection "${file%.*}" \ # filename w/o extension
--host "<your-host>" \
--authenticationDatabase "<your-auth-db>" \
-u "user" \
-p "pwd" \
"$HOME/mongodump/dev/<your-db>/$file"
fi;
done
恢复 mongodb 中特定集合的步骤。
1) 转到转储文件夹所在的目录。
2) 根据您的数据库名称和您的集合名称修改执行以下命令。
mongorestore --db mydbname --collection mycollection dump/mydbname/mycollection.bson
如果你得到Failed: yourdbname.collection.name: error creating indexes for collection.name: createIndex error: The field 'safe' is not valid for an index specification error
,那么你可以使用下面的命令:
mongorestore --db mydbname --collection mycollection dump/mydbname/mycollection.bson --noIndexRestore
我认为现在可以使用 --nsInclude
选项完成此操作:
mongorestore --nsInclude test.purchaseorders dump/
dump/
是包含 mongodump 数据的文件夹,test
是数据库,purchaseorders
是集合。
https://docs.mongodb.com/manual/reference/program/mongorestore/