どの NoSQL データベースをお勧めしますか? また、スキーマは次の Web アプリケーション要件をどのように満たしますか?
多くのユーザーが存在する可能性があります(500k+)
すべてのユーザーが自分のドキュメントを入力できます
すべてのユーザーは、おそらく 1 か月あたり 10 ~ 200 のドキュメントを作成します。
すべてのドキュメントは小さくなります (約 100 ワード)
ユーザーは自分のタグでドキュメントにタグを付けることができます
別のユーザーからのデータは、他のユーザーおよびそのデータと相互作用しません
ユーザーは自分のエントリをタグで検索できます
1 人のユーザーからすべてのエントリへの高速アクセス
ユーザーは複雑な動的クエリを作成して、自分のデータをクエリできます
私の考えは、MongoDB を使用することです。しかし、私が見る問題は、 usersとentryの 2 つのコレクションしかないことです。
1 つの巨大なコレクションをタグで検索するのは、私には悪い考えのように思えます。すべてのユーザーが独自のタグを持つことができるため、インデックスのサイズが非常に大きくなることが懸念されます。MongoDB はコレクション全体のタグ インデックスを作成しますが、私は常に、すべてではなく 1 人のユーザーのエントリのみをタグで検索します。
したがって、ユーザーごとのコレクションのアイデアはより適切に見えますが、作成できるコレクションの数には制限があるようであり、このアプローチも望ましくないようです。
CouchDB は動的クエリをサポートしていません...
これをMongoDBにどのように実装すればよいですか? または、より適切な NoSQL データベースを指定してください。
同様のアプリケーションの例: rememberthemilk、Trello、...