Features of CouchDB
Following is a list of most attractive features of CouchDB:
Document Storage: CouchDB is a NoSQL database which follows document storage. Documents are the primary unit of data where each field is uniquely named and contains values of various data types such as text, number, Boolean, lists, etc.
Documents don't have a set limit to text size or element count.
Browser Based GUI: CouchDB provides an interface Futon which facilitates a browser based GUI to handle your data, permission and configuration.
Replication: CouchDB provides the simplest form of replication. There is no other database is so simple to replicate.
ACID Properties: The CouchDB file layout follows all the features of ACID properties. Once the data is entered in to the disc, it will not be overwritten. Document updates (add, edit, delete) follow Atomicity, i.e., they will be saved completely or not saved at all. The database will not have any partially saved or edited documents. Almost all of these update are serialized and any number of clients can read a document without waiting and without being interrupted.
JSONP for Free: If you update your config to allow_jsonp = true then your database is accessible cross domain for GET requests.
Authentication and Session Support: CouchDB facilitates you to keep authentication open via a session cookie like web application.
Security: CouchDB also provides database-level security. The permissions per database are separated into readers and admins. Readers can both read and write to the database.
Validation: You can validate the inserted data into the database by combining with authentication to ensure the creator of the document is the one who is logged in.
Map/Reduce List and Show: The main reason behind the popularity of MongoDB and CouchDB is map/reduce system.