次のネットワーク/mongodbセットアップがあります:
1 つのプライマリ mongodb データベース (
10.0.0.1
、インターネットからはアクセスできません) - コレクション A とコレクション B に個人情報が含まれ、信頼できるユーザーによって作成されたドキュメントがあります。任意の時点で、ユーザーはコレクション B 内の任意のドキュメントを「パブリック」としてマークできます。これにより、そのプロパティが から{'public':false}
に変更され{'public':true}
ます。1 つのパブリック mongodb データベース (
10.0.0.2
、リバース プロキシ経由でインターネットからアクセス可能な Web サーバーを実行) - コレクション A は含まれませんが、コレクション B からの「パブリック」としてマークされたすべてのドキュメントを含む必要があります。このマシンは、それらのパブリック ドキュメントを外部のユーザーに提供します。通信網。
10.0.0.1
プライマリ データベース ( ) 内のドキュメントが で更新された{'public':true}
ときに、パブリック mongodb データベース ( ) に複製されるように mongodb を設定するにはどうすればよい10.0.0.2
ですか?
その他の詳細:
- PHPドライバーを使用しています
- ドキュメントは小さく、最大 2KB
- これらのサーバーの負荷は、おそらく 10 人の同時ユーザーを超えることはありません
- 結果整合性は数分までは問題ありませんが、オプションが何であるかを知りたいです。
繰り返しになりますが、使用例を次に示します。
John は私たちのプライベート ネットワークに VPN 接続し、 を開き
http://10.0.0.1/
、ドキュメントを作成し (それを と呼びますD2
)、それをプライベートとしてマークします。その後、John は古いドキュメント を表示し、D1
[公開する] ボタンをクリックして公開することにしました。サーバーは自動的にドキュメントをパブリック サーバーexample.com
(パブリック IPx.y.z.w
、内部 IP10.0.0.2
) で利用できるようにします。ジョンはサラに電子メールを送信し、文書 D1 (公開された文書) を読むように依頼します。サラは に行き、
http://example.com
読むことはできますD1
が、決して見ることはありませんD2
。
私の目標は、これら 2 つのデータベースを同期するためのスクリプトを手動で作成することなく、これを実現することです。可能だと思いますが、MongoDB レプリケーションについて読んだことからはわかりません。
アドバイスをお待ちしております。
ありがとうございました!