Query: Fundamentals

The Query Service supports the querying of data by means of the N1QL query language.

As its primary function, the Query service enables you to issue queries to extract data from Couchbase server. You can also issue queries for data definition (defining indexes) and data manipulation (adding or deleting data). The Query Service depends on both the Index Service and the Data Service.

To issue queries, you can use a Couchbase SDK, the REST API, or the tools provided by the Query service: the cbq shell or the Query workbench.

SELECT *
FROM `travel-sample`.inventory.route r
JOIN `travel-sample`.inventory.airline a
ON r.airlineid = META(a).id
WHERE a.country = "France"

When to Use Queries

Use the Query service for operational queries — for example, the front-end queries behind every page display or navigation.

Use the Analytics service when you don’t know every aspect of the query in advance — for example, if the data access patterns change frequently, or you want to avoid creating an index for each data access pattern, or you want to run ad hoc queries for data exploration or visualization.

Use the Full Text Search service when you want to take advantage of natural-language querying.

N1QL for Query

Couchbase Server can be queried using N1QL (pronounced "nickel"), the Couchbase Server query language. N1QL derives its name from the non-first normal form of the data model, which is a superset and generalization of the relational first normal form (1NF).

N1QL is an expressive, powerful, and complete SQL dialect for querying, transforming, and manipulating JSON data. Based on SQL, it’s immediately familiar to developers who can quickly start developing rich applications.