通过 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