MongoDB过滤了复制集合

时间:2012-11-15 09:45:05

标签: mongodb replication

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

 Collection A      replicate      Collection B
--------------    ---------->    --------------
Capped at 50MB                   Infinite size!
local                            cloud server

这是否可以在MongoDB中使用(因为在CouchDB中可以使用过滤器)?

或者我应该寻找一种完全不同的方法?

感谢您的建议!

1 个答案:

答案 0 :(得分:1)

上限集合中的删除操作不是操作,因此不会通过oplog复制它们。因此,您需要做的就是在次要数据上使集合无上限,并且在向限制集合添加数据并复制这些操作时,它将继续增长。尝试这样的事情:

  1. 正常添加云服务器上的辅助
  2. 停止新的辅助设备,在没有replset参数的集合之外重新启动它
  3. 删除带帽的集合,使用与常规无上限集合相同的名称重新创建
  4. (可选)使用mongodump / mongorestore
  5. 手动重新导入数据
  6. 使用原始副本集参数
  7. 重新启动辅助节点
  8. 新的正常收藏将继续增长
  9. 如果要删除集合或进行其他更改,则每次都需要将辅助更改,但除此之外,此操作应符合您的要求。我没有明确地做过这个,但是我已经意外地看到了这种情况,并且不得不做相反的事情:)