【问题标题】:Mongorestore a single collection through stdin outputMongorestore 通过标准输入输出单个集合
【发布时间】:2021-12-13 16:03:07
【问题描述】:

我想使用标准输出在单个命令行中将 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 没有按预期复制目标集合中的数据?

【问题讨论】:

标签: mongodb mongodump mongorestore mongodb-tools


【解决方案1】:

--nsInclude 选项过滤输入数据。由于从 mongodump 传递的 bson 数据不包含来自db2.target_coll 的任何文档,因此不会恢复任何内容。

使用--nsFrom--nsTo 用mongorestore 重命名集合。

【讨论】:

    【解决方案2】:

    我尝试使用 mongodump 备份一个集合但没有成功,我不知道为什么,然后我更改并像这样使用mongoexportmongoimport,它工作正常。

    mongoexport --uri="mongodb://host:port/fooDatabase" --collection=fooCollection --out=fooCollection.json

    mongoimport --uri="mongodb://host:port/fooDatabase" --collection=newFooCollection --file=fooCollection.json --mode=upsert

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-10-03
      • 1970-01-01
      • 2013-09-18
      • 2022-07-05
      • 1970-01-01
      • 2014-08-05
      • 2010-10-17
      相关资源
      最近更新 更多