Saya telah menggunakan MongoDB secara luas (selama 6 bulan terakhir), membangun sistem manajemen data hirarkis, dan saya dapat menjamin kemudahan pengaturan (instal, jalankan, gunakan!) Dan kecepatannya. Selama Anda berpikir tentang indeks dengan hati-hati, itu bisa benar-benar menjerit, dengan cepat.
Saya mengetahui bahwa Cassandra, karena penggunaannya dengan proyek-proyek skala besar seperti Twitter, memiliki fungsi penskalaan yang lebih baik, meskipun tim MongoDB bekerja pada paritas di sana. Saya harus menunjukkan bahwa saya tidak menggunakan Cassandra di luar tahap uji coba, jadi saya tidak dapat berbicara secara detail.
Tingkah laku nyata bagi saya, ketika kami menilai basis data NoSQL, adalah kueri - Cassandra pada dasarnya hanya toko kunci / nilai raksasa, dan kueri sedikit rumit (setidaknya dibandingkan dengan MongoDB), jadi untuk kinerja Anda harus duplikat data yang cukup banyak sebagai semacam indeks manual. MongoDB, di sisi lain, menggunakan model "permintaan dengan contoh".
Misalnya, Anda memiliki Koleksi (bahasa MongoDB yang setara dengan tabel RDMS) yang berisi Pengguna. MongoDB menyimpan catatan sebagai Dokumen, yang pada dasarnya adalah objek JSON biner. misalnya:
{
FirstName: "John",
LastName: "Smith",
Email: "john@smith.com",
Groups: ["Admin", "User", "SuperUser"]
}
Jika Anda ingin menemukan semua pengguna yang disebut Smith yang memiliki hak Admin, Anda cukup membuat dokumen baru (di konsol admin menggunakan Javascript, atau dalam produksi menggunakan bahasa pilihan Anda):
{
LastName: "Smith",
Groups: "Admin"
}
... lalu jalankan kueri. Itu dia. Ada tambahan operator untuk perbandingan, pemfilteran RegEx dll, tetapi semuanya sangat sederhana, dan dokumentasi berbasis Wiki cukup bagus.