CouchDB is not as limiting as you suggest but it is a total paradigm shift. There is more to CouchDB than map-reduce.
In my view, CouchDB is more at home as a middleware layer than a database layer.
Take your current project as an example. Why not have Apache reverse proxy to CouchDB? You'd give up zero CouchDB functionality and would gain Kerberos authentication.
Putting another web server in front of CouchDB is unnecessary, but putting web proxy servers in front of it is totally useful. In other words, adding HTTP layers on top of CouchDB means you don't have to trade-off anything.
CouchDB lives and breathes HTTP. If you choose to keep your database from talking with the outside world directly, then CouchDB is a poor choice and you're right to go with MongoDB.
Don't let the name fool you, people. CouchDB isn't simply a place to stuff and retrieve JSON data.
In my view, CouchDB is more at home as a middleware layer than a database layer.
Take your current project as an example. Why not have Apache reverse proxy to CouchDB? You'd give up zero CouchDB functionality and would gain Kerberos authentication.
Putting another web server in front of CouchDB is unnecessary, but putting web proxy servers in front of it is totally useful. In other words, adding HTTP layers on top of CouchDB means you don't have to trade-off anything.
CouchDB lives and breathes HTTP. If you choose to keep your database from talking with the outside world directly, then CouchDB is a poor choice and you're right to go with MongoDB.
Don't let the name fool you, people. CouchDB isn't simply a place to stuff and retrieve JSON data.