Pertanyaan yang sangat lama tetapi ada di atas Google dan saya tidak begitu suka jawaban yang saya lihat jadi ini milik saya.
Ada lebih banyak hal untuk Couchdb daripada kemampuan untuk mengembangkan CouchApps. Kebanyakan orang menggunakan CouchDb dalam arsitektur web 3-tier klasik.
Dalam praktiknya, faktor penentu bagi kebanyakan orang adalah kenyataan bahwa MongoDb memungkinkan kueri ad-hoc dengan sintaks seperti SQL sementara CouchDb tidak (Anda harus membuat peta / mengurangi tampilan yang membuat sebagian orang mati meskipun membuat tampilan ini ramah pengembangan aplikasi cepat - tidak ada hubungannya dengan prosedur tersimpan)
Untuk mengatasi poin yang muncul dalam jawaban yang diterima: CouchDb memiliki sistem versi yang bagus, tetapi itu tidak berarti bahwa itu hanya cocok (atau lebih cocok) untuk tempat-tempat di mana versi penting. Juga, couchdb sangat ramah terhadap penulisan karena sifatnya yang hanya menambahkan (operasi menulis kembali dalam waktu singkat sambil menjamin bahwa tidak ada data yang akan hilang).
Satu hal yang sangat penting yang tidak disebutkan oleh siapa pun adalah fakta bahwa CouchDb bergantung pada indeks b-tree. Ini berarti apakah Anda memiliki 1 "baris" atau 20 miliar, waktu kueri akan selalu tetap di bawah 10 ms. Ini adalah pengubah permainan yang menjadikan CouchDb basis data latensi rendah dan ramah-baca, dan ini benar-benar tidak boleh diabaikan.
Agar adil dan lengkap, keuntungan yang dimiliki MongoDb atas CouchDb adalah perkakas dan pemasaran. Mereka memiliki alat warga negara kelas satu untuk semua bahasa dan platform utama yang mempermudah penggunaannya dan ini ditambahkan ke permintaan adhoc mereka membuat transisi dari SQL menjadi lebih mudah.
CouchDb tidak memiliki tingkat perkakas ini - meskipun ada banyak perpustakaan yang tersedia saat ini - tetapi CouchDb diekspos sebagai HTTP API dan karena itu cukup mudah untuk membuat pembungkus dalam bahasa favorit Anda untuk berbicara dengannya. Saya pribadi menyukai pendekatan ini karena menghindari mengasapi dan memungkinkan Anda untuk hanya mengambil apa yang Anda inginkan (prinsip pemisahan antarmuka).
Jadi saya akan mengatakan menggunakan satu atau yang lain sebagian besar adalah masalah kenyamanan dan preferensi dengan paradigma mereka. Pendekatan CouchDb "pas", untuk orang-orang tertentu, tetapi jika setelah mempelajari tentang fitur basis data (secara lengkap) panduan resmi ) Anda tidak memiliki momen "neraka ya", Anda mungkin harus melanjutkan.
Saya tidak ingin menggunakan CouchDb jika Anda hanya ingin menggunakan "alat yang tepat untuk pekerjaan yang tepat". karena Anda akan tahu bahwa Anda tidak bisa menggunakannya begitu saja dan Anda akan marah dan menulis posting blog seperti "Di mana bergabung di CouchDb?" dan "Di mana manajemen transaksi?". Memang Couchdb adalah - secara paradoks - sangat transparan tetapi pada saat yang sama membutuhkan perubahan paradigma dan perubahan dalam cara Anda mendekati masalah untuk benar-benar bersinar (dan benar-benar berfungsi).
Tetapi begitu Anda selesai melakukannya, itu akan bermanfaat. Saya pribadi membutuhkan alasan yang sangat kuat atau pemecah masalah besar pada suatu proyek untuk memilih database lain, tetapi sejauh ini saya belum pernah bertemu.