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 に答える