1

我已经限制了本地 MongoDB 集合 A,我想复制到云服务器上的 MongoDB 集合 B。现在,我想保留 A 中由于大小上限而将被删除的文档。

集合 A 复制集合 B
-------------- ----------> --------------
上限为 50MB 无限大小!
本地云服务器

这在 MongoDB 中是否可行(就像在 CouchDB 中使用过滤器一样)?

还是我应该寻找一种完全不同的方法?

谢谢你的建议!

4

1 回答 1

1

上限集合中的删除不是操作,因此它们不会通过 oplog 复制。因此,您需要做的就是使集合在辅助节点上不受限制,并且随着您将数据添加到有上限的集合并复制这些操作,它只会继续增长。尝试这样的事情:

  1. 照常在云服务器上添加辅助
  2. 停止那个新的辅助,在没有 replset 参数的集合之外重新启动它
  3. 删除上限集合,使用与常规非上限集合相同的名称重新创建
  4. (可选)使用 mongodump/mongorestore 手动重新导入数据
  5. 使用原始副本集参数重新启动辅助节点
  6. 新常态系列将继续增长

如果要删除集合或进行其他更改,则每次都需要取出辅助对象,否则应该按照您的意愿行事。我自己并没有明确地这样做,但我偶然看到这种情况发生并且不得不做相反的事情:)

于 2012-11-15T10:12:34.363 回答