คำถามเก่ามาก แต่อยู่ด้านบนของ Google และฉันไม่ชอบคำตอบที่ฉันเห็นดังนั้นนี่เป็นของฉันเอง
Couchdb มีอะไรมากกว่าความสามารถในการพัฒนา CouchApps คนส่วนใหญ่ใช้ CouchDb ในสถาปัตยกรรมเว็บคลาส 3 ชั้น
ในการฝึกปัจจัยการตัดสินใจสำหรับคนส่วนใหญ่จะเป็นข้อเท็จจริงที่ MongoDb อนุญาตให้ทำการสอบถามด้วย SQL เช่นไวยากรณ์ในขณะที่ CouchDb ไม่ได้ (คุณต้องสร้างแผนที่ / มุมมองลดซึ่งบางคนปิดแม้ว่าจะสร้างมุมมองเหล่านี้ การพัฒนาแอปพลิเคชันอย่างรวดเร็วเป็นมิตร - พวกเขาไม่เกี่ยวข้องกับกระบวนการจัดเก็บ)
เพื่อพูดถึงประเด็นที่ได้รับคำตอบที่ยอมรับแล้ว: CouchDb มีระบบการกำหนดเวอร์ชันที่ยอดเยี่ยม แต่ไม่ได้หมายความว่ามันเหมาะสมเท่านั้น (หรือเหมาะสมกว่า) สำหรับสถานที่ที่การกำหนดเวอร์ชันเป็นสิ่งสำคัญ นอกจากนี้ couchdb ยังเป็นมิตรกับการเขียนอย่างหนักด้วยลักษณะผนวกเท่านั้น (เขียนการดำเนินการกลับมาในเวลาไม่นานในขณะที่รับประกันว่าไม่มีข้อมูลจะหายไป)
สิ่งสำคัญอย่างหนึ่งที่ไม่มีใครพูดถึงคือความจริงที่ว่า CouchDb อาศัยดัชนี b-tree ซึ่งหมายความว่าไม่ว่าคุณจะมี 1 "แถว" หรือ 20 พันล้านครั้งเวลาสอบถามจะยังคงต่ำกว่า 10ms เสมอ นี่คือตัวเปลี่ยนเกมซึ่งทำให้ CouchDb เป็นฐานข้อมูลที่มีความหน่วงต่ำและอ่านง่ายและนี่ไม่ควรมองข้าม
เพื่อความเป็นธรรมและครบถ้วนสมบูรณ์ประโยชน์ที่ MongoDb มีมากกว่า CouchDb นั้นเป็นเครื่องมือและการตลาด พวกเขามีเครื่องมือพลเมืองชั้นหนึ่งสำหรับภาษาและแพลตฟอร์มที่สำคัญทั้งหมดทำให้การใช้งานง่ายขึ้นและสิ่งนี้ถูกเพิ่มลงในการสอบถามแบบเฉพาะกิจทำให้การเปลี่ยนจาก SQL ง่ายยิ่งขึ้น
CouchDb ไม่มีเครื่องมือในระดับนี้ - แม้ว่าจะมีห้องสมุดจำนวนมากในปัจจุบัน แต่ CouchDb นั้นถูกเปิดเผยเป็น HTTP API และดังนั้นจึงค่อนข้างง่ายในการสร้าง wrapper ในภาษาที่คุณชื่นชอบเพื่อพูดคุยกับมัน ฉันชอบวิธีนี้เป็นการส่วนตัวเนื่องจากจะหลีกเลี่ยงการขยายตัวและอนุญาตให้คุณใช้สิ่งที่คุณต้องการเท่านั้น (หลักการแยกส่วนต่อประสาน)
ดังนั้นฉันจะบอกว่าการใช้อย่างใดอย่างหนึ่งเป็นเรื่องของความสะดวกสบายและความพึงพอใจกับกระบวนทัศน์ของพวกเขา CouchDb ใช้วิธี "พอดี" สำหรับบางคน แต่ถ้าหลังจากเรียนรู้เกี่ยวกับคุณสมบัติของฐานข้อมูล (ในคู่มืออย่างเป็นทางการหมดจด) คุณไม่มีช่วงเวลา "ใช่เลย" คุณควรจะไปต่อ
ฉันไม่แนะนำให้ใช้ CouchDb หากคุณต้องการใช้ "เครื่องมือที่เหมาะสมสำหรับงานที่เหมาะสม" เพราะคุณจะพบว่าคุณไม่สามารถใช้วิธีการนั้นได้และคุณจะกลายเป็นโกรธและเขียนโพสต์บล็อกเช่น "การเข้าร่วมใน CouchDb อยู่ที่ไหน" และ "การจัดการธุรกรรมอยู่ที่ไหน" แน่นอน Couchdb คือ - ขัดแย้ง - โปร่งใสมาก แต่ในเวลาเดียวกันต้องเปลี่ยนกระบวนทัศน์และการเปลี่ยนแปลงในวิธีที่คุณแก้ไขปัญหาที่จะส่องแสงจริงๆ (และทำงานจริง ๆ )
แต่เมื่อคุณทำเสร็จแล้วมันจะจ่ายจริง ฉันเองต้องการเหตุผลที่แข็งแกร่งมากหรือผู้จัดการรายใหญ่ในโครงการเพื่อเลือกฐานข้อมูลอื่น แต่จนถึงตอนนี้ฉันยังไม่เคยเจอเลย