私は(過去6か月間)MongoDBを広範囲に使用して、階層的なデータ管理システムを構築しており、セットアップの容易さ(インストール、実行、使用!)と速度の両方を保証できます。インデックスについて注意深く考える限り、速度的には絶叫することができます。
Cassandraは、Twitterのような大規模プロジェクトで使用されているため、より優れたスケーリング機能を備えていますが、MongoDBチームはそこで同等に取り組んでいます。私は試用段階を超えてCassandraを使用しなかったことを指摘しなければならないので、詳細について話すことはできません。
私がNoSQLデータベースを評価しているときの本当のスウィンガーはクエリでした-Cassandraは基本的に巨大なキー/値ストアであり、クエリは少し面倒です(少なくともMongoDBと比較して)ので、パフォーマンスのために大量のデータを一種の手動インデックスとして複製します。一方、MongoDBは「例によるクエリ」モデルを使用します。
たとえば、ユーザーを含むコレクション(RDMSテーブルに相当するMongoDBの用語)があるとします。MongoDBは、レコードをドキュメントとして保存します。ドキュメントは、基本的にバイナリJSONオブジェクトです。例えば:
{
FirstName: "John",
LastName: "Smith",
Email: "john@smith.com",
Groups: ["Admin", "User", "SuperUser"]
}
管理者権限を持つSmithと呼ばれるすべてのユーザーを検索する場合は、新しいドキュメントを(JavaScriptを使用して管理コンソールで、または選択した言語を使用して本番環境で)作成するだけです。
{
LastName: "Smith",
Groups: "Admin"
}
...そしてクエリを実行します。それでおしまい。比較、RegExフィルタリングなどの演算子が追加されていますが、すべて非常に単純で、Wikiベースのドキュメントは非常に優れています。