
Explore CouchDB as a scalable, easy-to-use NoSQL database, with hands-on guidance on JSON documents, REST APIs, Fauxton, design documents, Mango query language, views, and clustering.
Compare CouchDB with relational databases by examining JSON documents, self-contained records, schemaless design, multiversion concurrency control, and MapReduce or Mango queries.
Highlight the differences between CouchDB and Couchbase, clarifying that Couchbase is not CouchDB and has its own API, structure, and libraries.
Explore how couchdb and mongodb differ in Cap theorem constraints, replication models, and rest api approaches within NoSQL, noting couchdb's emphasis on availability and mongodb's market dominance.
Trace CouchDB's evolution from version 1 through 3, including Bigcouch and Cloudant histories, Mango query language, and IBM's FoundationDB migration.
Explore essential tools for CouchDB work, including ssh, terminal access, putty, and postman, to test rest APIs against a local 127.0.0.1:5984 instance.
Explore the anatomy of a json document in CouchDB, covering basic structure, keys and values, data types, escaping, arrays, and nested objects, with underscore id and underscore rev as examples.
Explore the CouchDB URL structure and rest API basics, including get, put, post, and delete operations for documents and design documents, with headers, authentication, and example endpoints.
Explore installation options for CouchDB 2 and up, including local hosting, servers, and online services like IBM Cloudant, with simple, moderate, and production-ready paths.
Install CouchDB on macOS and Windows by downloading installers for 1.6 or 2.0, running the setup, and configuring the bind address to allow remote connections.
Install couchdb 2.0 on Linux with Bitnami to simplify dependencies across Ubuntu, Debian, CentOS, and Red Hat. Configure the local ini, enable remote access, restart, secure with SSL and HTTPS.
Install CouchDB 2.1 on Ubuntu or Debian, add the Apache source, install and configure runit, and set the bind address and admin password before verifying with curl.
Learn how to prepare an Ubuntu/Debian server for production by installing haproxy and certbot, obtaining a Let's Encrypt SSL certificate, and configuring a secure proxy to access CouchDB.
Explore hosted couchdb options such as cloudant and smile ups, compare features and authentication differences, and review free tiers, trials, and dashboards like futon and photon.
Set up a secure admin account for CouchDB 3 using Futon and Photon, transforming admin party into a protected setup by creating an administrator and password.
Use the Photon web interface to add admins and users in CouchDB 3. Create the _users database with a validated user document, including id format, type, and roles.
Learn to use photon to create databases and documents, manage admin and member permissions, edit JSON documents, and explore table and JSON views with quick search and queries.
Set up postman to access the rest api by configuring basic authorization and content type to application/json. Use url parameters like count=5 to fetch generated uuids and interact with couchdb.
Learn to use the rest api with Postman to create and delete databases in CouchDB, perform get requests for database statistics, and manage authorization settings.
Learn to create, update, and delete documents in CouchDB using the rest api, manage revisions with post and put, and retrieve revs_info for version tracking.
Learn how to add, retrieve, and delete attachments in CouchDB 3 documents using put, get, and delete, manage revisions, content types, and view attachments.
Explore the CouchDB rest api and its database commands, focusing on all docs, bulk docs, changes, and security, with quick demos of underscore compact, underscore view cleanup, and revs limit.
Learn how to perform bulk docs in CouchDB by posting a JSON object with a docs array to upload, update, or delete multiple documents at once.
Explore the CouchDB changes stream and how every document revision is recorded. Retrieve whole databases or specific documents with get, post, and filters like since, limit, and include docs.
Secure a CouchDB database using the rest api by viewing current security with get and replacing it with put, defining admins and members by names and roles.
Design and save a simple design document in futon to list phone numbers and their attempt counts under four, using a temporary view and a JavaScript function.
Create a new design document in photon and add a map function view. Emit the phone number and the number of attempts, view in table mode, and build the index.
Explore how CouchDB views use a map function to emit keys and values, using doc references and emit, and learn view request options like include_docs, keys, and reduce.
Learn how design documents drive CouchDB queries with MapReduce views, show and list outputs, and validation and update functions, organized within a single design document using b-tree indexing.
Explore basic CouchDB views in design documents, using map and reduce to emit keys like year of death and nationality, group results, and view outputs via Postman.
Explore complex CouchDB views in design documents using variables, calculations, and if-else logic. Learn to build map and reduce functions, handle nulls, and emit instrument counts.
Explore mango query in CouchDB, inspired by MongoDB, including how design documents create a b-tree structure to speed searches and how the find endpoint uses find statements to return results.
Master mango indexes in CouchDB 3 by creating design documents with fields, a design doc name, and JSON or text types, using post or Photon.
Explore mango queries by understanding the find command anatomy, including selectors, fields, limit, skip, and sort. Learn how index choice affects performance and when to specify an index.
Explore mango queries by examining selector conditionals, using operators such as lt, lte, gt, gte, in, and nin, and testing exists, type, size, and mod with examples.
Explore mango queries and selector combiners, using and, or, nor, not, and all to build complex array-based conditions with element match and practical examples.
Explore CouchDB replication basics: copy changes from source to destination in a one-way sync, with push/pull, continuous tasks, conflict handling, and design document or mango selector filtering.
Explore replication in CouchDB 2.0 using Photon by setting up a continuous task from a local to a remote database, including creating targets and testing one-way and two-way syncing.
Learn to set up continuous replication tasks in photon 2.1 with Fauxton/Futon and configure local and remote databases. Manage push and pull replication, including authentication and task editing.
Set up replication tasks via the REST API by specifying source and target databases, with options like continuous, create target, and optional filters to copy documents.
Explore design documents in replication using the filter function to selectively replicate documents, handle null keys, and manage deletions with deleted true in continuous CouchDB replication.
Use mango selectors to filter documents during replication in CouchDB 2.1 and later. Create a replication document with a selector, source, target, and continuous flag to replicate only matching documents.
Learn how local documents behave in replication: they do not replicate, are hidden from photon and find, and require exact underscore ids; use sparingly and ignore revision numbers.
Explore how to set up a CouchDB cluster with load balancing, and understand key concepts like nodes, shards, replicates, and quorum for reliable reads and writes.
Prepare a couchdb cluster by applying identical admin passwords and a shared magic cookie across nodes, set the 0000 bind address, and assign couchdb@IPv4 or domain names.
Set up a four-server CouchDB cluster on Ubuntu 18, configure three nodes and a load balancer, install CouchDB, enable clustered mode, and verify membership with a test database across nodes.
Install CouchDB 1.6 on Ubuntu and Debian with apt, configure local.ini to bind to 0.0.0.0, restart, and verify access via curl and Futon.
Learn how to use futon to add and manage users and admins in CouchDB, including creating user documents, setting roles, and granting admin access with secure password handling.
Create, edit, and delete databases and documents in Futon, the web interface for CouchDB 1.6, manage users and roles, handle json or fields, view revisions, and upload attachments.
Discover how to set up a Couchdb instance on Jelastic Elastic Cloud with NoSQL options, using Mir hosting, a new environment, and Couchdb 1.6.1.
UPDATED FOR CouchDB 3.0!!!
Apache CouchDB is an exciting NoSQL database that is easy to get up and running with. It stores JSON documents and attachments of any type. You are free to store your data the way you want, and access it the way you want. It features a brilliant web interface which allows you to quickly maintain many aspects of the program and each database.
In this course we will discuss:
The fundamentals of what CouchDB is, and how it differs from traditional databases
The different versions of CouchDB that are available (version 1 thru 3 and Cloudant)
How to install CouchDB on MacOS, Windows and Linux
How to sign up for a hosted CouchDB account
Working in the web interface (Futon and Fauxton)
Working with the REST API
Create and work with Design Documents
Running queries with Mango
Replication among databases and servers
Database partitioning
Clustered servers
Old versions that still may be in use will still be covered in a legacy section
More content will be added to this course as CouchDB develops, waiting anxiously for version 4.0!
Please note: this course is about Apache CouchDB and NOT Couchbase which is a completely unrelated database
The official slogan of CouchDB is "Relax." So relax and enjoy this class and CouchDB. There are no stupid questions, so relax and ask them.