- Section 1: Basics
- 2: User-friendly language
- 3: Documents, not rows
- 4: Pattern matching with LIKE
- 5: Matching elements in nested arrays with ANY
- 6: Combining multiple conditions with AND
- 7: Querying primary keys
- 8: Quick review
- 9: Pagination with LIMIT and OFFSET
- 10: Filtering grouped data with HAVING
- 11. Review
- 12. Section 2: Joins
- 13. Joins
- 14. Joins
- 15. Exercise
- 16. Exercise
- 17. NEST
- 18. Chaining JOINs
- 19. Example
- 20. Array Comprehensions
- 21. Section 3: DML Statements
- 22. Nest
- 23. Nest
- 24. UNNEST
- 25. Filtering on nested data
- 26. Subquery
- 27. Subquery
- 28. Window Functions
- 29. Window Functions
- 30. UPDATE
- 31. Case Study I. E-Commerce
- 32. Shopper - Browsing products from page to page
- 33. Shopper - Listing product categories
- 34. Shopper - Browsing and searching for a product
- 35. Shopper - Listing products in a category
- 36. Shopper - Finding the most popular products in a category
- 37. Shopper - Browsing products and sorting results
- 38. Shopper - Shopping at a one-day sale
- 39. Shopper - Listing the top 10 best selling products
- 40. Shopper - Listing the highest rated products
- 41. Merchant - Preparing a purchase order
- 42. Merchant - Finding the most valued shoppers
- 43. Merchant - Reporting customers by region
- 44. Merchant - Reporting the active monthly customers
- 45. Merchant - Identifying non-performing products
- 46. Merchant - Generating the month-over-month sales report
- 47. Merchant - Big ticket orders
- 48. Case Study II . Social Game
- 49. Assembling and loading user profiles
- 50. Listing messages sent by a user
- 51. Generating scoreboards
Data in Couchbase Server is stored in the form of documents, not rows
or columns.
As documents can have nested elements and embedded arrays, a few additional operators are needed. The '.' operator is used to refer to children, and the '[]' is used to refer to an element in an array. You can use a combination of these operators to access data at any depth in a document.
In the example on the right, the document in the tutorial bucket has an embedded 'children' array. We fetch the first child's name. This query deals with two distinct 'name' attributes - the name attribute from the top level document object, and the name attribute from the child object. In general, an identifier like 'name' always refers to an attribute in the parent document or an alias. Attributes from child documents must be explicitly aliased using the **AS** clause. Here, the child's name is aliased to 'child_name'.
Try removing the 'AS child_name' clause and see what happens.
As documents can have nested elements and embedded arrays, a few additional operators are needed. The '.' operator is used to refer to children, and the '[]' is used to refer to an element in an array. You can use a combination of these operators to access data at any depth in a document.
In the example on the right, the document in the tutorial bucket has an embedded 'children' array. We fetch the first child's name. This query deals with two distinct 'name' attributes - the name attribute from the top level document object, and the name attribute from the child object. In general, an identifier like 'name' always refers to an attribute in the parent document or an alias. Attributes from child documents must be explicitly aliased using the **AS** clause. Here, the child's name is aliased to 'child_name'.
Try removing the 'AS child_name' clause and see what happens.
To run this example, click the button in the top right corner of the code editor.