通过 stdin 输出 Mongorestore 单个集合
Mongorestore a single collection through stdin output
我想使用标准输出在单个命令行中将 MongoDB 集合复制到另一个数据库。
我不想转储整个数据库。
目标集合将具有与副本不同的名称。
这是我的命令:
> mongodump -h=HOST -d=db1 -c=from_coll --archive --gzip | mongorestore -h=HOST --nsInclude=db2.target_coll --archive --gzip
writing db1.from_coll to an archive on stdout
preparing collections to restore from
done dumping db1.from_coll (100000 documents)
0 document(s) restored successfully. 0 document(s) failed to restore.
mongodump 部分似乎运行良好。
但是我们有 (0 document(s) restored successfully)
为什么 mongorestore 没有按预期复制目标集合中的数据?
--nsInclude
选项过滤输入数据。由于从 mongodump 传递的 bson 数据不包含来自 db2.target_coll
的任何文档,因此不会恢复任何内容。
使用 --nsFrom
和 --nsTo
使用 mongorestore 重命名集合。
我尝试使用 mongodump 备份一个集合但是没有用,我不知道为什么,然后我改变并使用 mongoexport and mongoimport 这样,它工作正常。
mongoexport --uri="mongodb://host:port/fooDatabase" --collection=fooCollection --out=fooCollection.json
mongoimport --uri="mongodb://host:port/fooDatabase" --collection=newFooCollection --file=fooCollection.json --mode=upsert
我想使用标准输出在单个命令行中将 MongoDB 集合复制到另一个数据库。
我不想转储整个数据库。
目标集合将具有与副本不同的名称。
这是我的命令:
> mongodump -h=HOST -d=db1 -c=from_coll --archive --gzip | mongorestore -h=HOST --nsInclude=db2.target_coll --archive --gzip
writing db1.from_coll to an archive on stdout
preparing collections to restore from
done dumping db1.from_coll (100000 documents)
0 document(s) restored successfully. 0 document(s) failed to restore.
mongodump 部分似乎运行良好。
但是我们有 (0 document(s) restored successfully)
为什么 mongorestore 没有按预期复制目标集合中的数据?
--nsInclude
选项过滤输入数据。由于从 mongodump 传递的 bson 数据不包含来自 db2.target_coll
的任何文档,因此不会恢复任何内容。
使用 --nsFrom
和 --nsTo
使用 mongorestore 重命名集合。
我尝试使用 mongodump 备份一个集合但是没有用,我不知道为什么,然后我改变并使用 mongoexport and mongoimport 这样,它工作正常。
mongoexport --uri="mongodb://host:port/fooDatabase" --collection=fooCollection --out=fooCollection.json
mongoimport --uri="mongodb://host:port/fooDatabase" --collection=newFooCollection --file=fooCollection.json --mode=upsert