そのテーブルはかなり時代遅れです:
- マスタースレーブレプリケーションは廃止され、スターター用のレプリカセットが採用されました。また、整合性も間違っています。MongoDBドキュメントのこのセクションを完全に読み直してください。
- Map / ReduceはJavaScriptのみであり、他にはありません。
- そのテーブルが添付ファイルで何を意味するのかわかりませんが、GridFSは、MongoDBに大きなファイルを簡単に保存できるようにするためにドライバーに組み込まれているストレージ標準です。メタデータもこの方法でサポートされます。
- MongoDBはバージョン2.2であるため、以前のバージョンについて言及しているものはすべて廃止されました(つまり、シャーディングと単一サーバーの耐久性)。
私はファイルを保存するためのCouchDBsインターフェースの個人的な経験はありませんが、2つの間にほとんど違いがなくても驚かないでしょう。この部分は私たちが答えるには主観的すぎると思います。あなたはどちらが自分に合っているかを決める必要があります。
実際には、MongoDBクラスターをマルチリージョンで構築し(S3バケットは、作業なしでは複製できず、複製できません)、MongoDBを介して世界の特定の地域で最もアクセスされたファイルをこれらのクラスターに複製することができます。
私が時々見つけた主な結果は、MongoDBがS3とCloudfrontを組み合わせたように機能できることです。これは、冗長ストレージとデータを分散する機能があるので素晴らしいことです。
ただし、ここではS3が非常に有効なオプションであると言われているので、真剣に試してみます。コンテンツネットワークで私と同じものを探しているとは限りません。
ファイルのデータベースストレージには深刻な欠点がありますが、MongoDBから実際に取得するのと同じ速度をCloudfrontフロントのS3から取得する必要があるため、速度はここでは大きな問題にはなりません(S3は冗長ストレージネットワークであることを忘れないでください) 、CDNではありません)。
S3を使用する場合は、ファイルを指し、そのファイルに関するメタデータを格納する行をデータベースに保存します。