Дуже давнє запитання, але це поверх Google, і мені не дуже подобаються відповіді, які я бачу, ось ось моя власна.
Couchdb набагато більше, ніж можливість розвивати CouchApps. Більшість людей використовують CouchDb в класичній трирівневій веб-архітектурі.
На практиці вирішальним фактором для більшості людей стане той факт, що MongoDb дозволяє ad-hoc-запит із синтаксисом типу SQL, а CouchDb цього не має (вам потрібно створити карту / зменшити представлення даних, яка відключає деяких людей, навіть не створюючи ці представлення) є швидким розвитком додатків - вони не мають нічого спільного зі збереженими процедурами).
Для вирішення пунктів, прийнятих у прийнятій відповіді: CouchDb має чудову систему редагування, але це не означає, що він підходить (або більше підходить) лише для місць, де важливе оновлення. Крім того, couchdb є дружньою для важких записів завдяки своєму природному стилю (записи операцій повертаються в найкоротші терміни, гарантуючи, що жодні дані ніколи не будуть втрачені).
Одне дуже важливе, що ніхто не згадує, це той факт, що CouchDb спирається на b-tree індекси. Це означає, що незалежно від того, чи маєте ви 1 "рядок" або 20 мільярдів, час запиту завжди залишатиметься нижче 10 мс. Це зміна ігор, яка робить CouchDb базою даних із низьким запізненням та зручністю для читання, і це дійсно не слід не помічати.
Щоб бути справедливим та вичерпним, перевага MongoDb над CouchDb - це інструментальне та маркетингове забезпечення. У них є першокласні інструменти для громадян для всіх основних мов і платформ, що робить його легко на борту, і це додає до їх запиту adhoc, що робить перехід від SQL ще простішим.
CouchDb не має такого рівня інструментарію - навіть незважаючи на те, що сьогодні існує багато бібліотек, але CouchDb виставляється як HTTP API, і тому досить просто створити обгортку на улюбленій мові, щоб поговорити з нею. Мені особисто подобається такий підхід, оскільки він уникає роздуття і дозволяє приймати лише те, що ви хочете (принцип сегрегації інтерфейсу).
Тому я б сказав, що використання тієї чи іншої є значною мірою питанням комфорту та переваги з їх парадигмами. Підхід CouchDb "певно підходить" для певних людей, але якщо дізнавшись про особливості бази даних (у вичерпному офіційному посібнику ), у вас немає свого "пекло так" моменту, ви, ймовірно, повинні рухатися далі.
Я б змусив використовувати CouchDb, якщо ви просто хочете використовувати "правильний інструмент для правильної роботи". тому що ви дізнаєтесь, що ви не можете просто використовувати це так, і в кінцевому підсумку ви будете злий і писати публікації в блогах, наприклад, "Де ви приєднуєтесь до CouchDb?" та "Де управління транзакціями?". Дійсно, Couchdb - парадоксально - дуже прозорий, але в той же час вимагає зміни парадигми та зміни способу підходу до проблем, щоб дійсно сяяти (і справді працювати).
Але як тільки ти зробив це, воно справді окупається. Мені особисто потрібні дуже вагомі причини чи великий перешкодник проекту, щоб вибрати іншу базу даних, але поки я жодної не зустрічав.