Çok eski bir soru ama Google'ın tepesinde ve gördüğüm cevaplardan pek hoşlanmıyorum, işte benim.
Couchdb'de CouchApps geliştirme yeteneğinden çok daha fazlası var. Çoğu kişi CouchDb'yi klasik 3 katlı bir web mimarisinde kullanır.
Uygulamada, çoğu insan için belirleyici faktör, MongoDb'nin CouchDb yapmazken SQL benzeri bir sözdizimiyle geçici sorgulamaya izin vermesi olacaktır (bu görünümleri oluştururken bile bazı insanları kapatan harita / görünümler oluşturmanız gerekir) Hızlı Uygulama Geliştirme dostu - saklı yordamlarla hiçbir ilgisi yok).
Kabul edilen cevapta ortaya çıkan puanları ele almak için: CouchDb'nin harika bir sürüm oluşturma sistemi vardır, ancak bu sürümlendirmenin önemli olduğu yerler için sadece uygun (veya daha uygun) anlamına gelmez. Ayrıca, couchdb, yalnızca ek niteliği sayesinde ağır yazma dostudur (hiçbir işlemin kaybolmayacağını garanti ederken işlemlerin hiçbir zaman geri dönmediğini yazar).
Kimsenin bahsetmediği çok önemli bir şey, CouchDb'nin b-ağacı indekslerine dayanmasıdır. Bu, 1 "satır" veya 20 milyar varsa, sorgulama süresinin her zaman 10 ms'nin altında kalacağı anlamına gelir. Bu, CouchDb'yi düşük gecikmeli ve okuma dostu bir veritabanı yapan bir oyun değiştiricidir ve bu gerçekten göz ardı edilmemelidir.
Adil ve kapsamlı olmak için MongoDb'nin CouchDb'ye göre avantajı, takımlama ve pazarlamadır. Tüm büyük diller ve platformlar için yerleşik sınıf araçlarına sahipler, yerleşikliği kolaylaştırıyorlar ve bu, adhoc sorgulamalarına eklendiğinde SQL'den geçişi daha da kolaylaştırıyor.
CouchDb, bugün birçok kitaplık olmasına rağmen - bu düzeyde bir araç takımına sahip değildir, ancak CouchDb bir HTTP API'si olarak görünür ve bu nedenle en sevdiğiniz dilde bir paketleyici oluşturmak çok kolaydır. Ben şahsen bu yaklaşımı seviyorum çünkü şişmeyi önler ve sadece istediğinizi almanıza izin verir (arayüz ayrımı prensibi).
Bu yüzden birini ya da diğerini kullanmak paradigmaları ile büyük ölçüde rahatlık ve tercih meselesi diyebilirim. CouchDb yaklaşımı bazı insanlar için "sadece uyuyor", ancak veritabanı özelliklerini öğrendikten sonra (ayrıntılı olarak resmi kılavuzda) ) “cehennem evet” anınız yoksa, muhtemelen devam etmelisiniz.
Sadece "doğru iş için doğru aracı" kullanmak istiyorsanız CouchDb'yi kullanmaktan vazgeçiyorum. çünkü bunu sadece bu şekilde kullanamayacağınızı öğreneceksiniz ve sinirlenmiş ve "CouchDb'deki birleştirmeler nerede?" ve "İşlem yönetimi nerede?". Gerçekten de Couchdb - paradoksal olarak - çok şeffaftır, ancak aynı zamanda bir paradigma değişimi ve problemlere gerçekten parlamak (ve gerçekten çalışmak) için yaklaşım biçiminizde bir değişiklik gerektirir.
Ama bunu yaptıktan sonra gerçekten işe yarıyor. Şahsen başka bir veritabanı seçmek için bir projede çok güçlü nedenlere veya büyük bir anlaşma kırıcıya ihtiyacım vardı, ancak şu ana kadar hiç karşılaşmadım.