Basic CRUD with CouchDB/PouchDB
In my previous post I discussed the basics of setting up CouchDB and PouchDB, in this article I'd like to walk you through some common operations we perform on any database: CRUD (Create-Read-Update-Delete) with CouchDB. I'd also add some SQL reference if you're coming from an SQL background.
Given that we already have our PouchDB database ready,
import PouchDB from 'pouchdb'
const db = PouchDB('my-offline-db')
Creating a Record
To create a database record, PouchDB gives us a ready to use interface with self-descriptive methods. Imagine we want to store peoples information based on their twitter handle, we could start by creating a JSON document and calling a post method to create.
const amustapha = {
name: "Abdulhakeem",
email: "abdulhakeemmustatpha@gmail.com",
country: "NG",
twitter: "https://twitter.com/_amustapha"
}
db.post(amustapha)
The snippet above is like writing the following in SQL
INSERT INTO profile (name, email, country, twitter)
VALUE ('Abdulhakeem', ;abdulhakeemmustapha@gmail.com', 'NG', 'https://twitter.com/_amustapha')
When the post function is called, our document is automatically assigned an id, unlike SQL which is often auto-incremented, this is a UUID containing up to 32 characters, and the function also returns a promise.
Reading a Record
To read a database record, we also would refer to the packed in pouchdb helper function get
. To run this function, we'll need to pass the id of an existing document.
db.get("unique-doc-id").then(doc => {
/* you can perform any operation on the document returned. */
console.log(doc)
})
The snippet above is like writing the following in SQL
SELECT * FROM profile WHERE id = 'unique-doc-id'
Updating a Record
Once we have read a record from the database, we could modify and save that record. For example, imagine a user changing their email. A helper method for this is put
db.get("unique-doc-id").then(doc => {
doc.email = "amustapha@hooli.ng"
db.put(doc)
})
The snippet above is like writing the following in SQL
UPDATE profile SET email='amustapha@hooli.ng' WHERE id = 'unique-doc-id'
Delete a Record
To delete a database record, simply use the remove
function
db.remove("unique-doc-id")
Hope you found this interesting, I'll be writing other articles to explore CouchDB queries in-depth and some really interesting plugins that would make life a lot easier for you. If you found it interesting, like it and share with friends.