Evolving Data Models
Many applications deal with constantly moving requirements and evolving applications schema is part of their daily life. Unlike relational databases or some of the other NoSQL solutions, Couchbase Server does not require a schema declaration.
As a developer, you can simply evolve your applications without any added administrative action in Couchbase Server. Schema changes do not require scheduling downtime or trigger long running, offline updates to existing data.
To accommodate evolving schemas, Couchbase Server provides a great deal of primitives that make it easy for applications to detect various versions of documents. Query and data access APIs make it easy to adapt to evolving schemas with native handling of empty, null and missing attributes.
SELECT * FROM `beer-sample` WHERE type="beer" AND ( (`bottling` IS NOT MISSING AND `bottling`=["can","glass"]) OR (`bottling` IS MISSING AND canned=true AND glassed=true) );
The flexibility enables the schema to evolve and application flexibly without restricting availability of the database environment.