So far in this book, you’ve installed and configured Couchbase, modeled your document database, and used the Client SDKs to perform basic retrieve and create operations. Because Couchbase is both a key-value store and a document database, you can access data in three fundamentally different ways. As a key-value store, which is essentially a large hash table, Couchbase provides very fast inserts and retrievals by key. As a document database, Couchbase lets you index and query data through views and, as of version 4.0, a new SQL-like query language called N1QL, which stands for “Non-1st Normal Form Query Language” and is pronounced “nickel.” Views will be covered in the next chapter, and N1QL will be discussed in Chapter 6. Of the three methods, key-based access is the more efficient, but it is also inherently less flexible.