Key-based operations provide an efficient mechanism for accessing data, and key-value stores often provide better performance than other data-access approaches. However, relying solely on keys to access complex data can be very limiting. Document databases provide a more flexible approach for querying data based on the content of the documents they store. Every document database provides different querying techniques. In Couchbase there are two different ways to query document content: views and the N1QL query language, which is covered in Chapter 6.