Book Image

Learning Couchbase

By : Henry Potsangbam
Book Image

Learning Couchbase

By: Henry Potsangbam

Overview of this book

This book achieves its goal by taking up an end-to-end development structure, right from understanding NOSQL document design to implementing full fledged eCommerce application design using Couchbase as a backend. Starting with the architecture of Couchbase to get you up and running, this book quickly takes you through designing a NoSQL document and implementing highly scalable applications using Java API. You will then be introduced to document design and get to know the various ways to administer Couchbase. Followed by this, learn to store documents using bucket. Moving on, you will then learn to store, retrieve and delete documents using smart client base on Java API. You will then retrieve documents using SQL like syntax call N1QL. Next, you will learn how to write map reduce base views. Finally, you will configure XDCR for disaster recovery and implement an eCommerce application using Couchbase.
Table of Contents (12 chapters)
Index

Views


Whenever we want to extract fields from JSON documents without the document ID, we use views. If you want to find a document or fetch information about a document with attributes or fields of a document other than the document ID, a view is the way to do it. Views are written in the form of MapReduce, which we have discussed earlier, that is, it consists of the map and reduce phase. Couchbase implements MapReduce using the JavaScript language.

The following diagram shows you how various documents are passed through the View Engine to produce an index. The view engine ensures that all documents in the bucket are passed through the map method for processing and subsequently to the reduce function to create indexes:

The View Engine

When we write views, the view engine defines materialized views for JSON documents and then queries across the dataset in the bucket. Couchbase provides a view processor to process entire documents with the map and reduce methods defined by the developer to create...