PouchDB – Deleting Attachment ”; Previous Next You can delete an attachment from PouchDB using the removeAttachment() method. Syntax Following is the syntax of the removeAttachment() method. To this method, we have to pass the document id, attachment id, and _rev value. This method also accepts an optional callback function. db.removeAttachment ( docId, attachmentId, rev, [callback] ); Example Suppose there is a document in PouchDB with id 001, which contains id, name, age, designation of an employee along with an attachment as shown below. { name: ”Raju”, age: 23, designation: ”Designer”, _attachments: { ”att_1.txt”: { content_type: ”text/plain”, digest: ”md5-k7iFrf4NoInN9jSQT9WfcQ==”, data: ”AA==” } }, _id: ”001”, _rev: ”2-cdec6c9f45ddbee7d456945654742d43” } Following is an example of deleting the attachment of this document 001 stored in PouchDB, using removeAttachment() method. //Requiring the package var PouchDB = require(”PouchDB”); //Creating the database object var db = new PouchDB(”my”); db.removeAttachment(”001”, ”att_1.txt”, ”2-cdec6c9f45ddbee7d456945654742d43”, function(err, res) { if (err) { return console.log(err); } else { console.log(res+”Attachment Deleted successfully”) } }); Save the above code in a file with the name Remove_Attachment.js. Open the command prompt and execute the JavaScript file using node as shown below. C:PouchDB_Examples >node Remove_Attachment.js This removes the attachment of the document and displays a message on the console as shown below. Attachment deleted successfully After deletion, you can verify the contents of the document by executing the following code. //Requiring the package var PouchDB = require(”PouchDB”); //Creating the database object var db = new PouchDB(”my_d”); //Reading the Document db.get(”001”,{attachments: true}, function(err, doc) { if (err) { return console.log(err); } else { console.log(doc); } }); Save this code as read.js and execute it. On executing, you will get the contents of the document after deleting the attachment, as shown below. { name: ”Raju”, age: 23, designation: ”Designer”, _id: ”001”, _rev: ”3-da775487a6ed0495f2e49c543384f8e8” } Removing Attachment from a Remote Document You can delete an attachment of an existing document in the database that is stored remotely on the server (CouchDB). To do so, instead of a database name, you need to pass the path to the database in CouchDB, which contains the document that is to be read. Example Suppose there is a database named my_database in the CouchDB server. Then, if you verify the list of databases in CouchDB using the URL http://127.0.0.1:5984/_utils/index.html you will get the following screenshot. And if you select the database named my_database, you can view its contents as shown below. Suppose there is an attachment in this document as shown below. Following is an example of deleting the above mentioned attachment of the document 001 that exists in a database named my_database which is stored in the CouchDB server. //Requiring the package var PouchDB = require(”PouchDB”); //Creating the database object var db = new PouchDB(”http://localhost:5984/my_database”); db.removeAttachment(”001”, ”att_1.txt”, ”2-049f1c4ffa54576ec0947b65e34de423”, function(err, res) { if (err) { return console.log(err); } else { console.log(res+”Attachment Deleted successfully”) } }); Save the above code in a file with the name Remote_Delete_Attachment.js. Open the command prompt and execute the JavaScript file using node as shown below. C:PouchDB_Examples >node Remote_Delete_Attachment.js This removes the existing attachment and displays the following message. Attachment Deleted successfully If you visit the document again, you can notice that the attachment was deleted as shown in the following screenshot. Print Page Previous Next Advertisements ”;
Category: pouchdb
PouchDB – Home
PouchDB Tutorial PDF Version Quick Guide Resources Job Search Discussion PouchDB is an open source in-browser database API written in JavaScript. It is modelled after CouchDB − a NoSQL database that powers npm. Using this API, we can build applications that work offline and online. PouchDB uses WebSQL and IndexedDB internally to store the data. This tutorial discusses the basics of PouchDB along with relevant examples for easy understanding. Audience This tutorial has been prepared for beginners to help them understand the basic concepts of PouchDB. It will aid you to build applications which will work offline and online alike using PouchDB and CouchDB. Prerequisites The reader should have a basic knowledge of databases. It would be better to have a good command on programming languages, which are compatible with node.js such as JavaScript and CoffeeScript. Frequently Asked Questions about PouchDB There are some very Frequently Asked Questions(FAQ) about PouchDB, this section tries to answer them briefly. What is PouchDB? PouchDB is a JavaScript library that allows developers to create and manage databases directly in web browsers or in Node.js applications. It is designed to be lightweight, fast, and easy to use, providing a way to store and sync data locally on a user”s device, even when offline. PouchDB uses a NoSQL database model, similar to JSON (JavaScript Object Notation), making it flexible and well-suited for storing and querying structured data. It also supports features like replication, allowing data to be synchronized between multiple devices or with a remote server. How PouchDB work offline? PouchDB allows users to work offline by storing data directly on their devices. It creates a local database where data can be saved and accessed without an internet connection. When online, PouchDB synchronizes the local database with a remote server, ensuring that any changes made offline are replicated to the server. This enables users to access and interact with their data both online and offline, providing a seamless experience across different network conditions. What data types does PouchDB support? PouchDB supports various data types, making it versatile for storing different kinds of information. Some of the common data types supported by PouchDB are as follows − Strings − Textual data, such as names, descriptions, and messages, can be stored as strings in PouchDB. Numbers − Numeric data, such as quantities, prices, and ages, can be stored as numbers in PouchDB. Boolean − True/false values, which represent binary states like yes/no or on/off, can be stored as boolean data in PouchDB. Arrays − Collections of related data, such as lists of items or sets of values, can be stored as arrays in PouchDB. Objects − Complex data structures, consisting of key-value pairs, can be stored as objects in PouchDB. How is PouchDB different from CouchDB? PouchDB and CouchDB are both databases that use similar technology, but they serve different purposes and have different use cases − PouchDB − PouchDB is designed to run directly in web browsers and mobile devices, allowing developers to create applications that can work offline and sync data with a remote server when online. It is lightweight and optimized for use in client-side applications. CouchDB − CouchDB, on the other hand, is a full-fledged database server that runs on servers or cloud platforms. It is designed for storing and managing large amounts of data, providing features like replication, clustering, and map-reduce queries. CouchDB is suitable for building server-side applications and back-end systems. Where data is stored in Pouchdb? Data in PouchDB is stored locally on the user”s device, such as a web browser or mobile device. PouchDB creates a local database that resides directly on the user”s device, allowing data to be stored and accessed without needing an internet connection. This local database functions similarly to other databases but is specifically designed to work offline. Users can interact with the data stored in PouchDB just like they would with any other database, but the data remains on their device until it is synchronized with a remote server. This local storage capability enables applications built with PouchDB to provide offline functionality, allowing users to work with their data even when they are not connected to the internet. How can PouchDB be used in a web application? PouchDB is seamlessly integrated into web applications, allowing developers to create offline-capable apps by storing data directly within the user”s web browser. Once initialized, PouchDB provides a local database where data can be stored and managed, enabling users to interact with the application even when offline. When the user reconnects to the internet, PouchDB automatically syncs the local data with a remote server, ensuring data consistency across devices. This implementation of PouchDB empowers developers to build strong web applications that provide a smooth user experience, regardless of network connectivity. What is the purpose of PouchDB”s “changes” API? The purpose of PouchDB”s “changes” API is to allow developers to listen for and respond to changes that occur in the database in real-time. Imagine you are watching a live sports game on TV. The “changes” API is like having a live feed of updates about the game. Whenever something happens in the game, like a goal being scored or a foul being called, you immediately see it on your screen without having to wait for a recap. Similarly, with PouchDB”s “changes” API, developers can receive instant notifications whenever new data is added, updated, or deleted in the database. This allows them to react to changes in real-time, updating the user interface or performing other actions as needed. What is the difference between SQLite and PouchDB? SQLite and PouchDB are both databases, but they serve different purposes and work in different environments − SQLite − SQLite is a relational database management system (RDBMS) that is generally used in server-side applications or desktop software. It is designed to store and manage structured data efficiently, making it suitable for applications that require complex queries and transactions. SQLite databases are often used in situations where data needs to be shared
PouchDB – Create Batch
PouchDB – Create Batch ”; Previous Next You can create an array (batch) of documents in PouchDB using the db.bulkDocs() method. While creating documents, using this method if we do not provide _id values, on our behalf PouchDB generates unique ids for all the documents in the bulk. Syntax Following is the syntax of using the db.bulkDocs() method of PouchDB. You can store all the documents that are to be created in PouchDB in an array and pass it to this method as a parameter. In addition to it, this method also accepts a callback (optional) function as a parameter. db.bulkDocs(docs, [options], [callback]) Example Following is an example of creating multiple documents in PouchDB using the db.bulkDocs () method. The documents we create should be of JSON format, a set of key-value pairs separated by comma (,) and enclosed within curly braces ({}). //Requiring the package var PouchDB = require(”PouchDB”); //Creating the database object var db = new PouchDB(”my_database”); //Preparing the documents array doc1 = {_id: ”001”, name: ”Ram”, age: 23, Designation: ”Programmer”} doc2 = {_id: ”002”, name: ”Robert”, age: 24, Designation: ”Programmer”} doc3 = {_id: ”003”, name: ”Rahim”, age: 25, Designation: ”Programmer”} docs = [doc1, doc2, doc3] //Inserting Documents db.bulkDocs(docs, function(err, response) { if (err) { return console.log(err); } else { console.log(“Documents created Successfully”); } }); Save the above code in a file with name Create_Batch.js. Open the command prompt and execute the JavaScript file using node as shown below. C:PouchDB_Examples >node Create_Batch.js This creates the given document in PouchDB database named my_database which is stored locally. The following message gets displayed. Documents created Successfully Inserting a Batch in a Remote Database You can insert an array of documents in the database that is stored remotely on the server (CouchDB). To do so, instead of a database name you need to pass the path to the database where we want to create documents in CouchDB. Example Suppose there is a database named my_database in the CouchDB server. Then, if you verify the list of databases in CouchDB using the URL http://127.0.0.1:5984/_utils/index.html you will get the following screenshot. Following is an example of inserting an array of documents in the database named my_database which is saved in the CouchDB server. //Requiring the package var PouchDB = require(”PouchDB”); //Creating the database object var db = new PouchDB(”http://localhost:5984/my_database”); //Preparing the documents array doc1 = {_id: ”001”, name: ”Ram”, age: 23, Designation: ”Programmer”} doc2 = {_id: ”002”, name: ”Robert”, age: 24, Designation: ”Programmer”} doc3 = {_id: ”003”, name: ”Rahim”, age: 25, Designation: ”Programmer”} docs = [doc1, doc2, doc3] //Inserting Documents db.bulkDocs(docs, function(err, response) { if (err) { return console.log(err); } else { console.log(“Documents created Successfully”); } }); Save the above code in a file with the name Remote_Create_Batch.js. Open the command prompt and execute the JavaScript file using node as shown below. C:PouchDB_Examples >node Remote_Create_Batch.js This creates the given documents in PouchDB database named my_database which is stored in CouchDB. The following message is displayed. Document created Successfully Verification After executing the above program if you visit the my_database again, you can observe the documents created as shown in the following screenshot. Print Page Previous Next Advertisements ”;
PouchDB – Delete Batch
PouchDB – Delete Batch ”; Previous Next You can delete an array of documents in PouchDB at once using the bulkDocs() method. To do so you need to create an array of documents that are to be deleted where, each document should contain _id and _rev. In addition to these you have to add another key-value pair _deleted: true. Suppose the database named my_database that is stored locally in PouchDB contains 3 documents namely doc1, doc2, doc3 with the following contents. doc1 = {_id: ”001”, name: ”Ram”, age: 23, Designation: ”Programmer”} doc2 = {_id: ”002”, name: ”Robert”, age: 24, Designation: ”Programmer”} doc3 = {_id: ”003”, name: ”Rahim”, age: 25, Designation: ”Programmer”} And say, we have to delete all the three documents. Then, first of all you need to get their _rev values. Therefore, fetch the contents of these documents using the following code. //Requiring the package var PouchDB = require(”PouchDB”); //Creating the database object var db = new PouchDB(”my_database”); //Retrieving all the documents in PouchDB db.allDocs({include_docs: true},function(err, docs) { if (err) { return console.log(err); } else { console.log(docs.rows); } }); Save the above code as bulk_fetch.js. Executing the above program gives you the _id and _rev values of the documents in the database as shown below. [ { id: ”001”, key: ”001”, value: { rev: ”1-1604b0c3ff69dc1e261265fd60808404” } }, { id: ”002”, key: ”002”, value: { rev: ”1-b5e49db7e984841bf12a13e3ee548125” } }, { id: ”003”, key: ”003”, value: { rev: ”1-a7b342786ecc707aa91f3b321a177b51” } } ] Now, you can delete the documents using their respective _id and _rev values as shown below. //Requiring the package var PouchDB = require(”PouchDB”); //Creating the database object var db = new PouchDB(”my_database”); //Preparing the document docs = [{_id : ”001”, _rev: ”2-77f3a9974dd578d12f3f2a33aae64c8d”, _deleted : true }, {_id : ”002”, _rev: ”2-43966007568ce9567c96422195fcfa0d”, _deleted : true }, {_id : ”003”, _rev: ”2-6c5349652527f4f39583ff14f23cd677”,_deleted : true }] //Deleting Documents db.bulkDocs(docs, function(err, response) { if (err) { return console.log(err); } else { console.log(response+”Documents deleted Successfully”); } }); Save the above code in a file with the name Delete_All_Document.js. Open the command prompt and execute the JavaScript file using node as shown below. C:PouchDB_Examples >node Delete_All_Document.js This deletes all the documents that exists in the database named my_database which is stored locally, displaying the following message. Documents Deleted Successfully Now, if you execute the bulk_fetch.js program, you can observe an empty brace on the console indicating that the database is empty, as shown below. [] Deleting Batch from a Remote Database You can update all the documents from the database that is stored remotely on the server (CouchDB). To do so, instead of a database name, you need to pass the path to the database in CouchDB, which contains the document that is to be read. Example Suppose there is a database named my_database in the CouchDB server. Then, if you verify the list of databases in CouchDB using the URL http://127.0.0.1:5984/_utils/index.html you will get the following screenshot. If we select the database named my_database, you can observe that it contains 3 documents as shown in the following screenshot. Following is an example of deleting all the documents that exist in a database named my_database which is stored in the CouchDB server. //Requiring the package var PouchDB = require(”PouchDB”); //Creating the database object var db = new PouchDB(”http://localhost:5984/my_database”); //Preparing the document docs = [{_id : ”001”, _rev: ”4-6bc8d9c7a60fed2ed1667ec0740c1f39”, _deleted : true }, {_id : ”002”, _rev: ”2-1aa24ce77d96bb9d2a0675cdf1e113e0”, _deleted : true }, {_id : ”003”, _rev: ”2-fa113149ba618eda77f73072974a2bc1”,_deleted : true }] //Deleting Documents db.bulkDocs(docs, function(err, response) { if (err) { return console.log(err); } else { console.log(“Documents deleted Successfully”); } }); Save the above code in a file with name Remote_delete_AllDocuments.js. Open the command prompt and execute the JavaScript file using node as shown below. C:PouchDB_Examples >node Remote_Delete_AllDocuments.js This deletes the contents of all given document that exists in the database named my_database which is stored in CouchDB, and displays the following message. Documents Deleted Successfully Print Page Previous Next Advertisements ”;
PouchDB – Useful Resources
PouchDB – Useful Resources ”; Previous Next The following resources contain additional information on PouchDB. Please use them to get more in-depth knowledge on this. Useful Video Courses Oracle DB Online Training Course 42 Lectures 8.5 hours Tutorialspoint More Detail Oracle DB 12c Online Training 34 Lectures 7 hours Tutorialspoint More Detail AWS Certified Database Specialty Exam Prep Training (DBS-C01) Most Popular 73 Lectures 7.5 hours Total Seminars More Detail Cosmos DB Training Course 31 Lectures 1 hours Skillbakery More Detail Mongo DB Course: Learn all about MongoDB Best Seller 71 Lectures 2.5 hours Skillbakery More Detail Full-Stack web app development with Angular 12, .NET Core Web API & Mongo DB Most Popular 20 Lectures 49 mins Vinay Kumar More Detail Print Page Previous Next Advertisements ”;
PouchDB – Environment
PouchDB – Environment ”; Previous Next This chapter explains how to download and install PouchDB in your system. Installing PouchDB In order to work with PouchDB, you need to download the file .js file and include it in your script. Following are the steps to install PouchDB. Step 1 Visit the homepage of PouchDB website, by clicking the following link − https://PouchDB.com/ Step 2 Click the Download button on the top right hand side of the web page as shown in the above screenshot. This will download PouchDB-5.3.0.min.js in your system. Step 3 Copy and paste the PouchDB-5.3.0.min.js to your working directory and include it in your JavaScript as shown in the following command. <script src = “PouchDB-5.3.0.min.js”></script> Installing Pouch Using Node.js You can also install PouchDB as Node.js module. Following are the steps to install PouchDB using Node.js. Step 1 Install Node.js by following the steps given in the Installing Node.js section of our coffee script tutorial. Step 2 Open the command prompt and execute the following command. This will install PouchDB node module in your system. npm install –save PouchDB Downloading CouchDB When offline, PouchDB stores data locally and works like an app. You can access it online by connecting with compatible servers. As we know PouchDB can be connected to CouchDB, so, lets install CouchDB too. Following are the steps to install CouchDB. Step 1 The official website for CouchDB is http://couchdb.apache.org. If you click the given link, you can get the home page of CouchDB official website as shown in the following screenshot. Step 2 If you click on the download button that will lead to a page where the download links of CouchDB in various formats are provided. The following snapshot illustrates the same. Step 3 Choose the download link for Windows Systems and select one of the provided mirrors to start your download. Installing CouchDB A windows executable setup-couchdb-1.6.1_R16B02.exe file will be downloaded on your system. Run the setup file and proceed with the installation. After installing CouchDB in your system successfully, open the folder where CouchDB was installed, go to the bin folder, and start the server by running a script file named couchdb.bat. After installation, open built-in web interface of CouchDB by visiting the following link − http://127.0.0.1:5984/. If everything goes fine, this will give you a web page, which will have the following output. { “couchdb”:”Welcome”,”uuid”:”c8d48ac61bb497f4692b346e0f400d60″, “version”:”1. 6.1″, “vendor”: { “version”:”1.6.1″,”name”:”The Apache Software Foundation” } } You can interact with CouchDB web interface by using the following URL − http://127.0.0.1:5984/_utils/ This shows you the index page of Futon, which is the web interface of CouchDB. Print Page Previous Next Advertisements ”;
PouchDB – Update Batch
PouchDB – Update Batch ”; Previous Next You can update an array of documents in PouchDB at once using the bulkDocs() method. To do so you need to create an array of documents where, each document contains _id, _rev and the values that are to be updated. Suppose the database named my_database that is stored locally in PouchDB contains 3 documents namely doc1, doc2, doc3 with the following contents. doc1 = {_id: ”001”, name: ”Ram”, age: 23, Designation: ”Programmer”} doc2 = {_id: ”002”, name: ”Robert”, age: 24, Designation: ”Programmer”} doc3 = {_id: ”003”, name: ”Rahim”, age: 25, Designation: ”Programmer”} Suppose we have to increase the age values in all the 3 documents by 2 years. For this to happen, first you need to get the _rev values. Therefore, fetch the contents of these documents using the following code. //Requiring the package var PouchDB = require(”PouchDB”); //Creating the database object var db = new PouchDB(”my_database”); //Retrieving all the documents in PouchDB db.allDocs({include_docs: true},function(err, docs) { if (err) { return console.log(err); } else { console.log(docs.rows); } }); Save the above code as bulk_fetch.js. On executing, the above program gives you the _id and _rev values of the documents in the database as shown below. [ { id: ”001”, key: ”001”, value: { rev: ”1-1604b0c3ff69dc1e261265fd60808404” } }, { id: ”002”, key: ”002”, value: { rev: ”1-b5e49db7e984841bf12a13e3ee548125” } }, { id: ”003”, key: ”003”, value: { rev: ”1-a7b342786ecc707aa91f3b321a177b51” } } ] Now, you can update the documents using their respective _id and _rev values as shown below. //Requiring the package var PouchDB = require(”PouchDB”); //Creating the database object var db = new PouchDB(”my_databas”); //Preparing the document docs = [{_id : ”001”, _rev: ”1-1604b0c3ff69dc1e261265fd60808404”, age : 25, }, {_id : ”002”, _rev: ”1-b5e49db7e984841bf12a13e3ee548125”, age : 26, }, {_id : ”003”, _rev: ”1-a7b342786ecc707aa91f3b321a177b51”, age : 27 }] //Updating the documents in bulk db.bulkDocs(docs, function(err, response) { if (err) { return console.log(err); } else { console.log(“Documents Updated Successfully”); } }); Save the above code in a file with the name Update_All_Document.js. Open the command prompt and execute the JavaScript file using node as shown below. C:PouchDB_Examples >node Update_All_Document.js This updates all the documents that exists in the database named my_database which is stored locally, displaying the following message. Documents Updated Successfully Now, if you execute the bulk_fetch.js program by adding {include_docs: true} as a parameter to allDocs() function, before the callback, then, you will can see the values of the documents updated, as shown below. [ { id: ”001”, key: ”001”, value: { rev: ”2-77f3a9974dd578d12f3f2a33aae64c8d” }, doc: { age: 25, _id: ”001”, _rev: ”2-77f3a9974dd578d12f3f2a33aae64c8d” } }, { id: ”002”, key: ”002”, value: { rev: ”2-43966007568ce9567c96422195fcfa0d” }, doc: { age: 26, _id: ”002”, _rev: ”2-43966007568ce9567c96422195fcfa0d” } }, { id: ”003”, key: ”003”, value: { rev: ”2-6c5349652527f4f39583ff14f23cd677” }, doc: { age: 27, _id: ”003”, _rev: ”2-6c5349652527f4f39583ff14f23cd677” } } ] Updating Batch from a Remote Database You can update all the documents from the database that is stored remotely on the server (CouchDB). To do so, instead of a database name, you need to pass the path to the database in CouchDB, which contains the document that is to be read. Example Suppose there is a database named my_database in the CouchDB server. Then, if you verify the list of databases in CouchDB using the URL http://127.0.0.1:5984/_utils/index.html you will get the following screenshot. And assume if we select the database named my_database, you can observe that it contains 3 documents as shown in the following screenshot. Now, fetch the contents of these documents using the following code. //Requiring the package var PouchDB = require(”PouchDB”); //Creating the database object var db = new PouchDB(”http://localhost:5984/my_database”); //Retrieving all the documents in PouchDB db.allDocs({include_docs: true}, function(err, docs) { if (err) { return console.log(err); } else { console.log(docs.rows); } }); Save the above code as remote_bulk_fetch.js. On executing, the above program gives you the contents of all the documents in the database as shown below. [ { id: ”001”, key: ”001”, value: { rev: ”3-552920d1ca372986fad7b996ce365f5d” }, doc: { _id: ”001”, _rev: ”3-552920d1ca372986fad7b996ce365f5d”, name: ”Raju”, age: 23, designation: ”Designer” } }, { id: ”002”, key: ”002”, value: { rev: ”1-9af15cb11054ebe03a7816bf6c5e4128” }, doc: { _id: ”002”, _rev: ”1-9af15cb11054ebe03a7816bf6c5e4128”, name: ”Robert”, age: 24, Designation: ”Programmer” } }, { id: ”003”, key: ”003”, value: { rev: ”1-3033b5a78e915c52fd37325d42eb3935” }, doc: { _id: ”003”, _rev: ”1-3033b5a78e915c52fd37325d42eb3935”, name: ”Rahim”, age: 25, Designation: ”Programmer” } } ] Following is an example of updating all the documents that exists in a database named my_database which is stored in the CouchDB server. //Requiring the package var PouchDB = require(”PouchDB”); //Creating the database object var db = new PouchDB(”http://localhost:5984/my_database”); //Preparing the document docs = [{_id : ”001”, _rev: ”3-552920d1ca372986fad7b996ce365f5d”, age : 24, }, {_id : ”002”, _rev: ”1-9af15cb11054ebe03a7816bf6c5e4128”, age : 26, }, {_id : ”003”, _rev: ”1-3033b5a78e915c52fd37325d42eb3935”, age : 27}] //Inserting Document db.bulkDocs(docs, function(err, response) { if (err) { return console.log(err); } else { console.log(+”Documents Updated Successfully”); } }); Save the above code in a file with the name Remote_Update_Document.js. Open the command prompt and execute the JavaScript file using node as shown below. C:PouchDB_Examples >node Remote_Update_Document.js This updates the contents of all given document that exists in the database named my_database which is stored in CouchDB, and displays the following message. Documents Updated Successfully Now, if you execute the remote_bulk_fetch.js program you will can see the values of the documents updated, as shown below. [ { id: ”001”, key: ”001”, value: { rev: ”4-6bc8d9c7a60fed2ed1667ec0740c1f39” }, doc: { _id: ”001”, _rev: ”4-6bc8d9c7a60fed2ed1667ec0740c1f39”, age: 25 } }, { id: ”002”, key: ”002”, value: { rev: ”2-1aa24ce77d96bb9d2a0675cdf1e113e0” }, doc: { _id: ”002”, _rev: ”2-1aa24ce77d96bb9d2a0675cdf1e113e0”, age: 26 } }, { id: ”003”, key: ”003”, value: { rev: ”2-fa113149ba618eda77f73072974a2bc1” }, doc: { _id: ”003”, _rev: ”2-fa113149ba618eda77f73072974a2bc1”, age: 27 } } ] Print Page Previous Next Advertisements ”;
PouchDB – Replication
PouchDB – Replication ”; Previous Next One of the most important features of PouchDB is replication, i.e. you can make a copy of a database. You can replicate either a PouchDB instance stored locally or a CouchDB instance stored remotely. Syntax Following is the syntax of replicating a database in PouchDB. Here, a copy of the source database is the target. To this method, you can directly pass the location of source and destination databases in String format, or you can pass objects representing them. PouchDB.replicate(source, target, [options]) Both the source and targets can be either PouchDB instances or CouchDB instances. Replicating LocalDB to CouchDB Suppose there is a database with the name sample_database in PouchDB, and it contains 3 documents doc1, doc2, and doc3, having contents as shown below. doc1 = {_id: ”001”, name: ”Ram”, age: 23, Designation: ”Programmer”} doc2 = {_id: ”002”, name: ”Robert”, age: 24, Designation: ”Programmer”} doc3 = {_id: ”003”, name: ”Rahim”, age: 25, Designation: ”Programmer”} Following is an example which makes a copy of the database named sample_database that is stored locally in CouchDB. //Requiring the package var PouchDB = require(”PouchDB”); var localdb = ”sample_database”; //Creating remote database object var remotedb = ”http://localhost:5984/sample_database”; //Replicating a local database to Remote PouchDB.replicate(localDB, remoteDB); console.log (“Database replicated successfully”); Save the above code in a file with name Replication_example.js. Open the command prompt and execute the JavaScript file using node as shown below. C:PouchDB_Examples >node Replication_example.js This makes a copy of the database named sample_database in CouchDB instance and displays a message on the console as shown below. Database replicated successfully You can verify whether the database is replicated in your CouchDB instance by clicking the following link http://127.0.0.1:5984/_utils/index.html. On clicking, you can see the list of databases in your CouchDB. You can also observe that a copy of the database sample_database is created here. If you select the replicated database, you can view its contents as shown below. Replicating CouchDB to PouchDB Suppose there is a database with the name Remote_Database in CouchDB and it contains 3 documents, doc1, doc2, and doc3, having contents as shown below. doc1 = {_id: ”001”, name: ”Geeta”, age: 25, Designation: ”Programmer”} doc2 = {_id: ”002”, name: ”Zara Ali”, age: 24, Designation: ”Manager”} doc3 = {_id: ”003”, name: ”Mary”, age: 23, Designation: ”Admin”} Following is an example which makes a copy of the database named Remote_Database that is stored in CouchDB in the local storage. //Requiring the package var PouchDB = require(”PouchDB”); var localdb = ”sample_database”; var remotedb = ”http://localhost:5984/sample_database1”; //Replicating a local database to Remote PouchDB.replicate(remotedb, localdb); console.log(“Database replicated successfully”); Save the above code in a file with the name Replication_example2.js. Open the command prompt and execute the JavaScript file using node as shown below. C:PouchDB_Examples >node Replication_example2.js This makes a copy of the database named remote_database in PouchDB instance and displays a message on the console as shown below. Database replicated successfully You can verify whether the database is replicated in your Pouch instance by executing the following code. //Requiring the package var PouchDB = require(”PouchDB”); //Creating the database object var db = new PouchDB(”remote_database”); //Retrieving all the documents in PouchDB db.allDocs({include_docs: true, attachments: true}, function(err, docs) { if (err) { return console.log(err); } else { console.log(docs.rows); } }); If the database is replicated on executing the above code, you will get the contents of the replicated database as shown below. [ { id: ”001”, key: ”001”, value: { rev: ”1-23cf3767e32a682c247053b16caecedb” }, doc: { name: ”Geeta”, age: 25, Designation: ”Programmer”, _id: ”001”, _rev: ”1-23cf3767e32a682c247053b16caecedb” } }, { id: ”002”, key: ”002”, value: { rev: ”1-d5bcfafbd4d4fae92fd7fc4fdcaa3a79” }, doc: { name: ”Zara Ali”, age: 24, Designation: ”Manager”, _id: ”002”, _rev: ”1-d5bcfafbd4d4fae92fd7fc4fdcaa3a79” } }, { id: ”003”, key: ”003”, value: { rev: ”1-c4cce025dbd30d21e40882d41842d5a4” }, doc: { name: ”Mary”, age: 23, Designation: ”Admin”, _id: ”003”, _rev: ”1-c4cce025dbd30d21e40882d41842d5a4” } } ] Print Page Previous Next Advertisements ”;
PouchDB – Quick Guide
PouchDB – Quick Guide ”; Previous Next PouchDB – Overview This chapter provides a brief introduction to PouchDB along with its features and how it works. What is PouchDB? PouchDB is an open source in-browser database API written in JavaScript. It is modelled after Couch DB &minuss; a NoSQL database. Using this API, we can build applications that work offline and online. It internally uses WebSQL and IndexedDB to store data. How Does it Work? In PouchDB, when the application is offline, the data is stored locally using WebSQL and IndexedDB in the browser. When the application is back online, it is synchronized with CouchDB and compatible servers. Using PouchDB, you can communicate with both local and remote databases seamlessly without noticing any difference. Features of PouchDB Following are the features of PouchDB − Cross Browser − The API provided by PouchDB works the same in every environment, therefore, we can run a PouchDB application in various browsers. Light Weight − PouchDB is a very light-weight API, it is also included easily just using a script tag. Easy to Learn − If you have a prior knowledge of any programming language, it is easy to learn PouchDB. Open Source − PouchDB is an Open Source Application and is available on GitHub. Advantages of PouchDB Following are the advantages of PouchDB − Since PouchDB resides inside the browser, there is no need to perform queries over the network, this results in faster execution of queries. You can synchronize the data with any of the supported server and by doing so you can run apps both online and offline. Browsers that Support PouchDB Following are the browsers that support PouchDB − Firefox 29+ (Including Firefox OS and Firefox for Android) Chrome 30+ Safari 5+ Internet Explorer 10+ Opera 21+ Android 4.0+ iOS 7.1+ Windows Phone 8+ PouchDB – Environment This chapter explains how to download and install PouchDB in your system. Installing PouchDB In order to work with PouchDB, you need to download the file .js file and include it in your script. Following are the steps to install PouchDB. Step 1 Visit the homepage of PouchDB website, by clicking the following link − https://PouchDB.com/ Step 2 Click the Download button on the top right hand side of the web page as shown in the above screenshot. This will download PouchDB-5.3.0.min.js in your system. Step 3 Copy and paste the PouchDB-5.3.0.min.js to your working directory and include it in your JavaScript as shown in the following command. <script src = “PouchDB-5.3.0.min.js”></script> Installing Pouch Using Node.js You can also install PouchDB as Node.js module. Following are the steps to install PouchDB using Node.js. Step 1 Install Node.js by following the steps given in the Installing Node.js section of our coffee script tutorial. Step 2 Open the command prompt and execute the following command. This will install PouchDB node module in your system. npm install –save PouchDB Downloading CouchDB When offline, PouchDB stores data locally and works like an app. You can access it online by connecting with compatible servers. As we know PouchDB can be connected to CouchDB, so, lets install CouchDB too. Following are the steps to install CouchDB. Step 1 The official website for CouchDB is http://couchdb.apache.org. If you click the given link, you can get the home page of CouchDB official website as shown in the following screenshot. Step 2 If you click on the download button that will lead to a page where the download links of CouchDB in various formats are provided. The following snapshot illustrates the same. Step 3 Choose the download link for Windows Systems and select one of the provided mirrors to start your download. Installing CouchDB A windows executable setup-couchdb-1.6.1_R16B02.exe file will be downloaded on your system. Run the setup file and proceed with the installation. After installing CouchDB in your system successfully, open the folder where CouchDB was installed, go to the bin folder, and start the server by running a script file named couchdb.bat. After installation, open built-in web interface of CouchDB by visiting the following link − http://127.0.0.1:5984/. If everything goes fine, this will give you a web page, which will have the following output. { “couchdb”:”Welcome”,”uuid”:”c8d48ac61bb497f4692b346e0f400d60″, “version”:”1. 6.1″, “vendor”: { “version”:”1.6.1″,”name”:”The Apache Software Foundation” } } You can interact with CouchDB web interface by using the following URL − http://127.0.0.1:5984/_utils/ This shows you the index page of Futon, which is the web interface of CouchDB. PouchDB – Create Database You can create a database in PouchDB using the PouchDB constructor. Syntax Following is the syntax of using the PouchDB constructor. To this, you need to pass the name of the database as a parameter. new PouchDB(Database_name) Example To create a database in PouchDB using node, first of all, you need to require the PouchDB package using the require() method and then you can create a database as shown in the following example. //Requiring the package var PouchDB = require(”PouchDB”); //Creating the database object var db = new PouchDB(”my_database”); console.log (“Database created Successfully.”); Save the above code in a file with the name Create_Database.js. Open the command prompt and execute the JavaScript file using node as shown below. C:PouchDB_Examples>node Create_Database.js This will create a database locally (you can see the folder in the current directory) displaying the following message. Database created Successfully. PouchDB – Database Info You can get the basic information about the database using the method named info() Syntax Following is the syntax of using the info() method of PouchDB. This method accepts a callback function. db.info([callback]) Example Following is an example of retrieving database information using the info() method. Here, we are displaying the information of the database named my_database. In case of error, the error will be displayed on the console. //Requiring the package var PouchDB = require(”PouchDB”); //Creating the database object var db = new PouchDB(”my_database”); //Database information db.info(function(err, info) { if (err) { return console.log(err); } else { console.log(info); } }); Save the above code in a file with the name
PouchDB – Miscellaneous
PouchDB – Miscellaneous ”; Previous Next In this chapter, we will discuss the concepts like, compaction and retrieval of bulk data from PouchDB. Compaction You can reduce the size of a database by removing the unused data using compact() method. You can compact a local database as well as remote database using this method. Following is an example demonstrating the usage of the compact() method in PouchDB. //Requiring the package var PouchDB = require(”PouchDB”); //Creating the database object var db = new PouchDB(”sample_database”); db.compact(function (err, result) { if (err) { return console.log(err); } else { console.log(result); } }); BulkGet Method You can retrieve a set of documents in bulk using the bulkGet() method. To this method, you need to pass a set of id’s and _rev’s. Following is an example demonstrating the usage of the bulkGet() method in PouchDB. //Requiring the package var PouchDB = require(”PouchDB”); //Creating the database object var db = new PouchDB(”my_database”); //Preparing documents //Inserting Document db.bulkGet({docs: [ { id: “001”, rev: “1-5dc593eda0e215c806677df1d12d5c47”}, { id: “002”, rev: “1-2bfad8a9e66d2679b99c0cab24bd9cc8”}, { id: “003”, rev: “1-7cff4a5da1f97b077a909ff67bd5b047″} ]}, function(err, result) { if (err) { return console.log(err); } else { console.log(result); } }); Print Page Previous Next Advertisements ”;