PouchDB - คู่มือฉบับย่อ

บทนี้ให้คำแนะนำสั้น ๆ เกี่ยวกับ PouchDB พร้อมกับคุณสมบัติและวิธีการทำงาน

PouchDB คืออะไร?

PouchDB เป็นโอเพ่นซอร์ส in-browser database APIเขียนด้วย JavaScript เป็นแบบจำลองตามCouch DB & minuss; ฐานข้อมูล NoSQL เมื่อใช้ API นี้เราสามารถสร้างแอปพลิเคชันที่ทำงานออฟไลน์และออนไลน์ได้ ภายในใช้ WebSQL และ IndexedDB เพื่อจัดเก็บข้อมูล

มันทำงานอย่างไร?

ใน PouchDB เมื่อแอปพลิเคชันออฟไลน์ข้อมูลจะถูกจัดเก็บไว้ในเครื่องโดยใช้ WebSQL และ IndexedDB ในเบราว์เซอร์ เมื่อแอปพลิเคชันกลับมาออนไลน์จะซิงโครไนซ์กับ CouchDB และเซิร์ฟเวอร์ที่เข้ากันได้

ด้วยการใช้ PouchDB คุณสามารถสื่อสารกับฐานข้อมูลทั้งภายในและระยะไกลได้อย่างราบรื่นโดยไม่สังเกตเห็นความแตกต่าง

คุณสมบัติของ PouchDB

ต่อไปนี้เป็นคุณสมบัติของ PouchDB -

  • Cross Browser - API ที่ให้โดย PouchDB ทำงานเหมือนกันในทุกสภาพแวดล้อมดังนั้นเราจึงสามารถเรียกใช้แอปพลิเคชัน PouchDB ในเบราว์เซอร์ต่างๆ

  • Light Weight - PouchDB เป็น API ที่มีน้ำหนักเบามากและยังรวมไว้ด้วยอย่างง่ายดายเพียงใช้แท็กสคริปต์

  • Easy to Learn - หากคุณมีความรู้มาก่อนเกี่ยวกับภาษาการเขียนโปรแกรมใด ๆ คุณสามารถเรียนรู้ PouchDB ได้อย่างง่ายดาย

  • Open Source - PouchDB เป็นแอปพลิเคชั่นโอเพ่นซอร์สและมีอยู่ใน GitHub

ข้อดีของ PouchDB

ต่อไปนี้เป็นข้อดีของ PouchDB -

  • เนื่องจาก PouchDB อยู่ในเบราว์เซอร์จึงไม่จำเป็นต้องดำเนินการค้นหาผ่านเครือข่ายจึงส่งผลให้ดำเนินการสืบค้นได้เร็วขึ้น

  • คุณสามารถซิงโครไนซ์ข้อมูลกับเซิร์ฟเวอร์ที่รองรับและด้วยการทำเช่นนั้นคุณสามารถเรียกใช้แอพทั้งออนไลน์และออฟไลน์

เบราว์เซอร์ที่รองรับ PouchDB

ต่อไปนี้เป็นเบราว์เซอร์ที่รองรับ PouchDB -

  • Firefox 29+ (รวม Firefox OS และ Firefox สำหรับ Android)
  • Chrome 30+
  • Safari 5+
  • Internet Explorer 10+
  • Opera 21+
  • Android 4.0 ขึ้นไป
  • iOS 7.1 ขึ้นไป
  • Windows Phone 8+

บทนี้อธิบายวิธีการดาวน์โหลดและติดตั้ง PouchDB ในระบบของคุณ

การติดตั้ง PouchDB

ในการทำงานกับ PouchDB คุณต้องดาวน์โหลดไฟล์ .jsไฟล์และรวมไว้ในสคริปต์ของคุณ ต่อไปนี้เป็นขั้นตอนในการติดตั้ง PouchDB

ขั้นตอนที่ 1

ไปที่หน้าแรกของเว็บไซต์ PouchDB โดยคลิกที่ลิงค์ต่อไปนี้ -

https://PouchDB.com/

ขั้นตอนที่ 2

คลิกปุ่มดาวน์โหลดที่ด้านขวาบนของหน้าเว็บดังที่แสดงในภาพหน้าจอด้านบน สิ่งนี้จะดาวน์โหลดPouchDB-5.3.0.min.js ในระบบของคุณ

ขั้นตอนที่ 3

คัดลอกและวางไฟล์ PouchDB-5.3.0.min.js ไปยังไดเร็กทอรีการทำงานของคุณและรวมไว้ใน JavaScript ของคุณดังที่แสดงในคำสั่งต่อไปนี้

<script src = "PouchDB-5.3.0.min.js"></script>

การติดตั้งกระเป๋าโดยใช้ Node.js

คุณยังสามารถติดตั้ง PouchDB เป็นโมดูล Node.js ต่อไปนี้เป็นขั้นตอนในการติดตั้ง PouchDB โดยใช้ Node.js

ขั้นตอนที่ 1

ติดตั้ง Node.js โดยทำตามขั้นตอนที่ระบุในส่วนการติดตั้ง Node.js ของบทแนะนำสคริปต์กาแฟของเรา

ขั้นตอนที่ 2

เปิดพรอมต์คำสั่งและดำเนินการคำสั่งต่อไปนี้ สิ่งนี้จะติดตั้งโมดูลโหนด PouchDB ในระบบของคุณ

npm install --save PouchDB

กำลังดาวน์โหลด CouchDB

เมื่อออฟไลน์ PouchDB จะเก็บข้อมูลไว้ในเครื่องและทำงานเหมือนแอป คุณสามารถเข้าถึงออนไลน์ได้โดยเชื่อมต่อกับเซิร์ฟเวอร์ที่รองรับ อย่างที่เราทราบว่าสามารถเชื่อมต่อ PouchDB กับ CouchDB ได้ดังนั้นให้ติดตั้ง CouchDB ด้วย ต่อไปนี้เป็นขั้นตอนในการติดตั้ง CouchDB

ขั้นตอนที่ 1

เว็บไซต์อย่างเป็นทางการของ CouchDB คือ http://couchdb.apache.org. หากคุณคลิกลิงก์ที่ระบุคุณจะได้รับโฮมเพจของเว็บไซต์ทางการของ CouchDB ดังที่แสดงในภาพหน้าจอต่อไปนี้

ขั้นตอนที่ 2

หากคุณคลิกที่ปุ่มดาวน์โหลดที่จะนำไปสู่หน้าที่มีลิงค์ดาวน์โหลดของ CouchDB ในรูปแบบต่างๆ ภาพรวมต่อไปนี้แสดงให้เห็นเช่นเดียวกัน

ขั้นตอนที่ 3

เลือกลิงค์ดาวน์โหลดสำหรับระบบ Windows และเลือกหนึ่งในมิเรอร์ที่มีให้เพื่อเริ่มการดาวน์โหลดของคุณ

การติดตั้ง CouchDB

หน้าต่างปฏิบัติการ setup-couchdb-1.6.1_R16B02.exeไฟล์จะถูกดาวน์โหลดในระบบของคุณ เรียกใช้ไฟล์ติดตั้งและดำเนินการติดตั้ง

หลังจากติดตั้ง CouchDB ในระบบของคุณสำเร็จแล้วให้เปิดโฟลเดอร์ที่ติดตั้ง CouchDB ไปที่โฟลเดอร์ bin และเริ่มเซิร์ฟเวอร์โดยเรียกใช้ไฟล์สคริปต์ชื่อ couchdb.bat.

หลังจากติดตั้งแล้วให้เปิดเว็บอินเตอร์เฟสในตัวของ CouchDB โดยไปที่ลิงค์ต่อไปนี้ - http://127.0.0.1:5984/. หากทุกอย่างเรียบร้อยจะมีหน้าเว็บซึ่งจะมีผลลัพธ์ดังต่อไปนี้

{                 
   "couchdb":"Welcome","uuid":"c8d48ac61bb497f4692b346e0f400d60",
   "version":"1. 6.1",
   "vendor": {
      "version":"1.6.1","name":"The Apache Software Foundation"
   } 
}

คุณสามารถโต้ตอบกับเว็บอินเตอร์เฟส CouchDB ได้โดยใช้ URL ต่อไปนี้ -

http://127.0.0.1:5984/_utils/

นี่จะแสดงหน้าดัชนีของ Futon ซึ่งเป็นเว็บอินเตอร์เฟสของ CouchDB

คุณสามารถสร้างฐานข้อมูลใน PouchDB โดยใช้ตัวสร้าง PouchDB

ไวยากรณ์

ต่อไปนี้เป็นไวยากรณ์ของการใช้ตัวสร้าง PouchDB ในการนี้คุณต้องส่งชื่อของฐานข้อมูลเป็นพารามิเตอร์

new PouchDB(Database_name)

ตัวอย่าง

ในการสร้างฐานข้อมูลใน PouchDB โดยใช้ nodeก่อนอื่นคุณต้องใช้แพ็คเกจ PouchDB โดยใช้ไฟล์ require() วิธีการจากนั้นคุณสามารถสร้างฐานข้อมูลดังที่แสดงในตัวอย่างต่อไปนี้

//Requiring the package
var PouchDB = require('PouchDB');

//Creating the database object
var db = new PouchDB('my_database');
console.log ("Database created Successfully.");

บันทึกรหัสด้านบนในไฟล์ที่มีชื่อ Create_Database.js. เปิดพรอมต์คำสั่งและเรียกใช้ไฟล์ JavaScript โดยใช้node ดังแสดงด้านล่าง

C:\PouchDB_Examples>node Create_Database.js

สิ่งนี้จะสร้างฐานข้อมูลในเครื่อง (คุณสามารถเห็นโฟลเดอร์ในไดเร็กทอรีปัจจุบัน) โดยแสดงข้อความต่อไปนี้

Database created Successfully.

คุณสามารถรับข้อมูลพื้นฐานเกี่ยวกับฐานข้อมูลโดยใช้วิธีการที่ชื่อ info()

ไวยากรณ์

ต่อไปนี้เป็นไวยากรณ์ของการใช้ info()วิธีการของ PouchDB วิธีนี้ยอมรับฟังก์ชันเรียกกลับ

db.info([callback])

ตัวอย่าง

ต่อไปนี้เป็นตัวอย่างของการดึงข้อมูลฐานข้อมูลโดยใช้ไฟล์ info()วิธี. ที่นี่เรากำลังแสดงข้อมูลของฐานข้อมูลที่ชื่อmy_database. ในกรณีที่เกิดข้อผิดพลาดข้อผิดพลาดจะแสดงบนคอนโซล

//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);
   }
});

บันทึกรหัสด้านบนในไฟล์ที่มีชื่อ Database_info.js. เปิดพรอมต์คำสั่งและเรียกใช้ไฟล์ JavaScript โดยใช้node ดังแสดงด้านล่าง

C:\PouchDB_Examples>node Database_info.js

ซึ่งจะแสดงข้อมูลของฐานข้อมูลที่ระบุดังต่อไปนี้

{ 
   doc_count: 0,
   update_seq: 0,
   backend_adapter: 'LevelDOWN',
   db_name: 'my_database',
   auto_compaction: false,
   adapter: 'leveldb' 
}

ข้อมูลฐานข้อมูลระยะไกล

ในทำนองเดียวกันคุณจะได้รับข้อมูลของฐานข้อมูลที่บันทึกจากระยะไกลบนเซิร์ฟเวอร์ (CouchDB) ในการทำเช่นนั้นแทนที่จะใช้ชื่อฐานข้อมูลคุณต้องส่งเส้นทางไปยังฐานข้อมูลที่ต้องการใน CouchDB

ตัวอย่าง

ต่อไปนี้เป็นตัวอย่างของการดึงข้อมูลของฐานข้อมูลที่บันทึกไว้ในเซิร์ฟเวอร์ CouchDB รหัสนี้ให้ข้อมูลของฐานข้อมูลที่ชื่อmy_database.

//Requiring the package
var PouchDB = require('PouchDB');

//Creating the database object
var db = new PouchDB('http://localhost:5984/my_database');

//Database information
db.info(function(err, info) {
   if (err) {
      return console.log(err);
   } else {
      console.log(info);
   }
});

บันทึกรหัสด้านบนในไฟล์ที่มีชื่อ Database_ Remote_info.js. เปิดพรอมต์คำสั่งและเรียกใช้ไฟล์ JavaScript โดยใช้node ดังแสดงด้านล่าง

C:\PouchDB_Examples>node Database_Remote_info.js

ซึ่งจะแสดงข้อมูลของฐานข้อมูลที่ระบุดังต่อไปนี้

{ 
   db_name: 'my_database', 
   doc_count: 0, 
   doc_del_count: 0, 
   update_seq: 0, 
   purge_seq: 0, 
   compact_running: false, 
   disk_size: 79, 
   data_size: 0, 
   instance_start_time: '1458209191708486', 
   disk_format_version: 6, 
   committed_update_seq: 0, 
   host: 'http://localhost:5984/my_database/', 
   auto_compaction: false, 
   adapter: 'http' 
}

คุณสามารถลบฐานข้อมูลใน PouchDB โดยใช้ไฟล์ db.destroy() วิธี.

ไวยากรณ์

ต่อไปนี้เป็นไวยากรณ์ของการใช้ db.destroy()วิธี. วิธีนี้ยอมรับฟังก์ชันเรียกกลับเป็นพารามิเตอร์

db.destroy()

ตัวอย่าง

ต่อไปนี้เป็นตัวอย่างของการลบฐานข้อมูลใน PouchDB โดยใช้ไฟล์ destroy()วิธี. ที่นี่เรากำลังลบฐานข้อมูลชื่อmy_databaseสร้างขึ้นในบทก่อนหน้า

//Requiring the package
var PouchDB = require('PouchDB');

//Creating the database object
var db = new PouchDB('my_database');

//deleting database
db.destroy(function (err, response) {
   if (err) {
      return console.log(err);
   } else {
      console.log ("Database Deleted”);
   }
});

บันทึกรหัสด้านบนในไฟล์ที่มีชื่อ Delete_Database.js. เปิดพรอมต์คำสั่งและเรียกใช้ไฟล์ JavaScript โดยใช้ node ดังแสดงด้านล่าง

C:\PouchDB_Examples >node Delete_Database.js

การดำเนินการนี้จะลบฐานข้อมูลที่ชื่อ my_database ซึ่งจัดเก็บไว้ในเครื่องโดยแสดงข้อความต่อไปนี้

Database Deleted

การลบฐานข้อมูลระยะไกล

ในทำนองเดียวกันคุณสามารถลบฐานข้อมูลที่จัดเก็บจากระยะไกลบนเซิร์ฟเวอร์ (CouchDB)

ในการทำเช่นนั้นแทนที่จะใช้ชื่อฐานข้อมูลคุณต้องส่งเส้นทางไปยังฐานข้อมูลที่จำเป็นต้องลบใน CouchDB

ตัวอย่าง

สมมติว่ามีฐานข้อมูลชื่อ my_databaseในเซิร์ฟเวอร์ CouchDB จากนั้นหากคุณตรวจสอบรายการฐานข้อมูลใน CouchDB โดยใช้ URLhttp://127.0.0.1:5984/_utils/index.html คุณจะได้รับภาพหน้าจอต่อไปนี้

ต่อไปนี้เป็นตัวอย่างของการลบฐานข้อมูลที่ชื่อ my_database ที่บันทึกไว้ในเซิร์ฟเวอร์ CouchDB

//Requiring the package
var PouchDB = require('pouchdb');

//Creating the database object
var db = new PouchDB('http://localhost:5984/my_database');

//deleting database
db.destroy(function (err, response) {
   if (err) {
      return console.log(err);
   } else {
      console.log("Database Deleted");
   }
});

บันทึกรหัสด้านบนในไฟล์ที่มีชื่อ Remote_Database_Delete.js. เปิดพรอมต์คำสั่งและเรียกใช้ไฟล์ JavaScript โดยใช้node ดังแสดงด้านล่าง

C:\PouchDB_Examples >Remote_Database_Delete.js

สิ่งนี้จะลบฐานข้อมูลที่ระบุจาก PouchDB ที่แสดงข้อความต่อไปนี้

Database Deleted

การยืนยัน

หลังจากดำเนินการตามโปรแกรมข้างต้นหากคุณเข้าไปที่ URL อีกครั้งคุณจะได้รับภาพหน้าจอต่อไปนี้ ที่นี่คุณสามารถสังเกตได้เพียงสองฐานข้อมูลตั้งแต่นั้นมาmy_database ถูกลบ

คุณสามารถสร้างเอกสารใน PouchDB โดยใช้ไฟล์ db.put() วิธี.

ไวยากรณ์

ต่อไปนี้เป็นไวยากรณ์ของการใช้วิธี db.put () ของ PouchDB คุณสามารถจัดเก็บเอกสารที่จะสร้างใน PouchDB ในตัวแปรและส่งผ่านเป็นพารามิเตอร์ไปยังเมธอดนี้ นอกจากนี้วิธีนี้ยังยอมรับฟังก์ชันการเรียกกลับ (ทางเลือก) เป็นพารามิเตอร์

db.put(document, callback)

ตัวอย่าง

ต่อไปนี้เป็นตัวอย่างของการสร้างเอกสารใน PouchDB โดยใช้ไฟล์ put()วิธี. เอกสารที่เราสร้างควรอยู่ในรูปแบบ JSON ซึ่งเป็นชุดของคู่คีย์ - ค่าที่คั่นด้วยลูกน้ำ (,) และอยู่ภายในวงเล็บปีกกา ({}).

//Requiring the package
var PouchDB = require('PouchDB');

//Creating the database object
var db = new PouchDB('my_database');

//Preparing the document
doc = {
   _id : '001',
   name: 'Raju',
   age : 23,
   designation : 'Designer'
   }
//Inserting Document
db.put(doc, function(err, response) {
   if (err) {
      return console.log(err);
   } else {
      console.log("Document created Successfully");
   }
});

บันทึกรหัสด้านบนในไฟล์ที่มีชื่อ Create_Document.js. เปิดพรอมต์คำสั่งและเรียกใช้ไฟล์ JavaScript โดยใช้node ดังแสดงด้านล่าง

C:\PouchDB_Examples >node Create_Document.js

สิ่งนี้สร้างเอกสารที่กำหนดในฐานข้อมูล PouchDB ที่ชื่อ my_databaseซึ่งจัดเก็บไว้ในเครื่องโดยแสดงข้อความต่อไปนี้

Document created Successfully

การแทรกเอกสารในฐานข้อมูลระยะไกล

คุณยังสามารถแทรกเอกสารในฐานข้อมูลที่จัดเก็บจากระยะไกลบนเซิร์ฟเวอร์ (CouchDB)

ในการทำเช่นนั้นแทนที่จะใช้ชื่อฐานข้อมูลคุณต้องส่งเส้นทางไปยังฐานข้อมูลที่คุณต้องการสร้างเอกสารใน CouchDB

ตัวอย่าง

สมมติว่ามีฐานข้อมูลชื่อ my_databaseในเซิร์ฟเวอร์ CouchDB จากนั้นหากคุณตรวจสอบรายการฐานข้อมูลใน CouchDB โดยใช้ URLhttp://127.0.0.1:5984/_utils/index.html คุณจะได้รับภาพหน้าจอต่อไปนี้

ตอนนี้ถ้าคุณคลิกที่ฐานข้อมูลชื่อ my_databaseคุณจะพบฐานข้อมูลว่างดังที่แสดงในภาพหน้าจอต่อไปนี้

ต่อไปนี้เป็นตัวอย่างของการแทรกเอกสารในฐานข้อมูลที่ชื่อ my_database ที่บันทึกไว้ในเซิร์ฟเวอร์ CouchDB

//Requiring the package
var PouchDB = require('PouchDB');

//Creating the database object
var db = new PouchDB('http://localhost:5984/my_database');

//Preparing the document
doc = {
   _id : '001',
   name: 'Raju',
   age : 23,
   designation : 'Designer'
   }
//Inserting Document
db.put(doc, function(err, response) {
   if (err) {
      return console.log(err);
   } else {
      console.log("Document created Successfully");
   }
});

บันทึกรหัสด้านบนในไฟล์ที่มีชื่อ Remote_Create_Document.js. เปิดพรอมต์คำสั่งและเรียกใช้ไฟล์ JavaScript โดยใช้node ดังแสดงด้านล่าง

C:\PouchDB_Examples >node Remote_Create_Document.js

สิ่งนี้สร้างเอกสารที่กำหนดในฐานข้อมูล PouchDB ที่ชื่อ my_database ซึ่งเก็บไว้ใน CouchDB โดยแสดงข้อความต่อไปนี้

Document created Successfully

การยืนยัน

หลังจากดำเนินการตามโปรแกรมข้างต้นแล้วหากคุณไปที่ไฟล์ my_database อีกครั้งคุณสามารถสังเกตเอกสารที่สร้างขึ้นดังที่แสดงในภาพหน้าจอต่อไปนี้

คุณสามารถอ่าน / ดึงเนื้อหาของเอกสารใน PouchDB โดยใช้ไฟล์ db.get() วิธี.

ไวยากรณ์

ต่อไปนี้เป็นไวยากรณ์ของการใช้ db.get()วิธีการของ PouchDB วิธีนี้ยอมรับไฟล์document id และฟังก์ชันโทรกลับที่เป็นทางเลือก

db.get(document, callback)

ตัวอย่าง

ต่อไปนี้เป็นตัวอย่างของการอ่านเนื้อหาของเอกสารใน PouchDB โดยใช้ไฟล์ get() วิธี.

//Requiring the package
var PouchDB = require('PouchDB');

//Creating the database object
var db = new PouchDB('my_database');

//Reading the contents of a Document
db.get('001', function(err, doc) {
   if (err) {
      return console.log(err);
   } else {
      console.log(doc);
   }
});

บันทึกรหัสด้านบนในไฟล์ที่มีชื่อ Read_Document.js. เปิดพรอมต์คำสั่งและเรียกใช้ไฟล์ JavaScript โดยใช้โหนดดังที่แสดงด้านล่าง

C:\PouchDB_Examples >node Read_Document.js

สิ่งนี้อ่านเนื้อหาของเอกสารที่กำหนดซึ่งมีอยู่ในฐานข้อมูลที่ชื่อ my_databaseซึ่งจัดเก็บไว้ในเครื่อง ข้อความต่อไปนี้จะแสดงบนคอนโซล

{
   name: 'Raju',
   age: 23,
   designation: 'Designer',
   _id: '001',
   _rev: '1-ba7f6914ac80098e6f63d2bfb0391637'
}

การอ่านเอกสารจากฐานข้อมูลระยะไกล

คุณยังสามารถอ่านเอกสารจากฐานข้อมูลที่จัดเก็บจากระยะไกลบนเซิร์ฟเวอร์ (CouchDB)

ในการทำเช่นนั้นแทนที่จะใช้ชื่อฐานข้อมูลคุณต้องส่งเส้นทางไปยังฐานข้อมูลใน CouchDB ซึ่งมีเอกสารที่จะอ่าน

ตัวอย่าง

สมมติว่ามีฐานข้อมูลชื่อ my_databaseในเซิร์ฟเวอร์ CouchDB จากนั้นหากคุณตรวจสอบรายการฐานข้อมูลใน CouchDB โดยใช้ URLhttp://127.0.0.1:5984/_utils/index.html คุณจะได้รับภาพหน้าจอต่อไปนี้

โดยคลิกที่ฐานข้อมูลชื่อ my_databaseคุณสามารถดูภาพหน้าจอต่อไปนี้ ที่นี่คุณสามารถสังเกตได้ว่าฐานข้อมูลนี้มีเอกสารที่มี id001.

ต่อไปนี้เป็นตัวอย่างของการอ่านเนื้อหาของเอกสารที่มี id เป็น“001” ที่มีอยู่ในฐานข้อมูลชื่อ my_databaseซึ่งถูกเก็บไว้ในเซิร์ฟเวอร์ CouchDB

//Requiring the package
var PouchDB = require('PouchDB');

//Creating the database object
var db = new PouchDB('http://localhost:5984/my_database');

//Reading the contents of a document
db.get('001', function(err, doc) {
   if (err) {
      return console.log(err);
   } else {
      console.log(doc);
   }
});

บันทึกรหัสด้านบนในไฟล์ที่มีชื่อ Remote_Read_Document.js. เปิดพรอมต์คำสั่งและเรียกใช้ไฟล์ JavaScript โดยใช้node ดังแสดงด้านล่าง

C:\PouchDB_Examples >node Remote_Read_Document.js

สิ่งนี้อ่านเนื้อหาของเอกสารที่กำหนดซึ่งมีอยู่ในฐานข้อมูลที่ชื่อ my_databaseซึ่งเก็บไว้ใน CouchDB ข้อความต่อไปนี้แสดงขึ้นบนคอนโซล

{ 
   _id: '001',
   _rev: '3-552920d1ca372986fad7b996ce365f5d',
   name: 'Raju',
   age: 23,
   designation: 'Designer' 
}

เมื่อใดก็ตามที่เราสร้างเอกสารใน PouchDB ซึ่งเป็นฟิลด์ใหม่ _rev ถูกสร้างขึ้นและเรียกว่า revision marker. _revค่าของเป็นตัวเลขสุ่มที่ไม่ซ้ำกันทุกครั้งที่เราทำการเปลี่ยนแปลงค่าของเอกสาร _rev มีการเปลี่ยนแปลง

คุณสามารถอัปเดตเอกสารที่มีอยู่ใน PouchDB โดยใช้ไฟล์ (_rev). ในการทำเช่นนั้นก่อนอื่นให้ดึงไฟล์_revมูลค่าของเอกสารที่เราต้องการอัปเดต ตอนนี้วางเนื้อหาที่จะอัปเดตพร้อมกับการดึงข้อมูล_rev ค่าในเอกสารใหม่และสุดท้ายใส่เอกสารนี้ใน PouchDB โดยใช้ไฟล์ put() วิธี.

ตัวอย่าง

สมมติว่าเรามีเอกสารใน PouchDB พร้อม id 001ซึ่งมีรายละเอียดของบุคคล ในการอัปเดตเอกสารนี้เราควรมีหมายเลข rev ดังนั้นในการดึงเนื้อหาของเอกสารจึงใช้รหัสต่อไปนี้

//Requiring the package
var PouchDB = require('PouchDB');

//Creating the database object
var db = new PouchDB('my_database');

//Reading the contents of a Document
db.get('001', function(err, doc) {
   if (err) {
      return console.log(err);
   } else {
      console.log(doc);
   }
});

ในการรันโค้ดด้านบนคุณจะได้รับผลลัพธ์ต่อไปนี้

{
   _id: '001',
   _rev: '3-552920d1ca372986fad7b996ce365f5d',
   name: 'Raju',
   age: 23,
   designation: 'Designer' 
}

ตอนนี้ใช้ไฟล์ _rev คุณสามารถอัปเดตค่าของคีย์“age” ถึง 26 ดังแสดงในรหัสต่อไปนี้

//Requiring the package
var PouchDB = require('PouchDB');

//Creating the database object
var db = new PouchDB('my_database');

//Preparing the document for update
doc = {
   age: 26,
   _rev: '3-552920d1ca372986fad7b996ce365f5d',
   }

//Inserting Document
db.put(doc);

//Reading the contents of a Document
db.get('001', function(err, doc) {
   if (err) {
      return console.log(err);
   } else {
      console.log(doc);
   }
});

บันทึกรหัสด้านบนในไฟล์ที่มีชื่อ Update_Document.js. เปิดพรอมต์คำสั่งและเรียกใช้ไฟล์ JavaScript โดยใช้node ดังแสดงด้านล่าง

C:\Pouch_Examples>node Update_Document.js

สิ่งนี้จะอัพเดตเนื้อหาของเอกสารที่กำหนดซึ่งมีอยู่ในฐานข้อมูลที่ชื่อ my_databaseซึ่งจัดเก็บไว้ในเครื่อง ข้อความต่อไปนี้แสดงขึ้นบนคอนโซล

{ 
   name: 'Raju',
   age: 26,
   designation: 'Designer',
   _id: '001',
   _rev: '2-61b523ccdc4e41a8435bdffbb057a7a5' 
}

การอัปเดตเอกสารในฐานข้อมูลระยะไกล

คุณยังสามารถอัปเดตเอกสารที่มีอยู่ในฐานข้อมูลที่จัดเก็บจากระยะไกลบนเซิร์ฟเวอร์ (CouchDB)

ในการทำเช่นนั้นแทนที่จะใช้ชื่อฐานข้อมูลคุณต้องส่งเส้นทางไปยังฐานข้อมูลใน CouchDB ซึ่งมีเอกสารที่จะอัปเดต

ตัวอย่าง

สมมติว่ามีฐานข้อมูลชื่อ my_databaseในเซิร์ฟเวอร์ CouchDB จากนั้นหากคุณตรวจสอบรายการฐานข้อมูลใน CouchDB โดยใช้ URLhttp://127.0.0.1:5984/_utils/index.html คุณจะได้รับภาพหน้าจอต่อไปนี้

โดยคลิกที่ฐานข้อมูลชื่อ my_databaseคุณสามารถดูภาพหน้าจอต่อไปนี้ ที่นี่คุณสามารถสังเกตได้ว่าฐานข้อมูลนี้มีเอกสารที่มี id001.

ต่อไปนี้เป็นตัวอย่างการอัปเดตอายุของเอกสารที่มี id เป็น "001” ที่มีอยู่ในฐานข้อมูลชื่อ my_database ซึ่งถูกเก็บไว้ในเซิร์ฟเวอร์ CouchDB

//Requiring the package
var PouchDB = require('PouchDB');

//Creating the database object
var db = new PouchDB('http://localhost:5984/my_database');

//Preparing the document for update
doc = {
   age: 26,
   _rev: '3-552920d1ca372986fad7b996ce365f5d',
   }

//Inserting Document
db.put(doc);

//Reading the contents of a Document
db.get('001', function(err, doc) {
   if (err) {
      return console.log(err);
   } else {
      console.log(doc);
   }
});

บันทึกรหัสด้านบนในไฟล์ที่มีชื่อ Remote_Update_Document.js. เปิดพรอมต์คำสั่งและเรียกใช้ไฟล์ JavaScript โดยใช้node ดังแสดงด้านล่าง

C:\PouchDB_Examples >node Remote_Update_Document.js

สิ่งนี้จะอัพเดตเนื้อหาของเอกสารที่กำหนดซึ่งมีอยู่ในฐานข้อมูลที่ชื่อ my_databaseซึ่งเก็บไว้ใน CouchDB ข้อความต่อไปนี้แสดงขึ้นบนคอนโซล

{
   _id: '001',
   _rev: '2-b9640bffbce582c94308905eed8bb545',
   name: 'Raju',
   age: 26,
   designation: 'Designer' 
}

คุณสามารถลบเอกสารจากฐานข้อมูลที่มีอยู่ใน PouchDB โดยใช้ไฟล์ db.remove() วิธี.

ไวยากรณ์

ต่อไปนี้เป็นไวยากรณ์ของการใช้ db.remove()วิธีการของ PouchDB วิธีนี้เราต้องผ่านid และ _revเพื่อลบเอกสารที่มีอยู่ดังแสดงในรหัสต่อไปนี้ วิธีนี้ยอมรับฟังก์ชันเรียกกลับที่เป็นทางเลือก นอกจากนี้เรายังสามารถส่งเอกสารฉบับสมบูรณ์แทน id และ _rev

db. get ( docId, docRev, [callback] )
or
db. get ( docId, docRev, [callback] )

ตัวอย่าง

สมมติว่าเรามีเอกสารใน PouchDB พร้อม id 001ซึ่งมีรายละเอียดของบุคคล ในการลบเอกสารนี้พร้อมกับไฟล์id เราควรมีไว้ด้วย _revจำนวน. ดังนั้นให้ดึงเนื้อหาของเอกสารดังแสดงในรหัสต่อไปนี้

//Requiring the package
var PouchDB = require('PouchDB');

//Creating the database object
var db = new PouchDB('my_database');

//Reading the contents of a Document
db.get('001', function(err, doc) {
   if (err) {
      return console.log(err);
   } else {
      console.log(doc);
   }
});

การดำเนินการตามโค้ดด้านบนจะให้ผลลัพธ์ดังต่อไปนี้

{
   _id: '001',
   _rev: '3-552920d1ca372986fad7b996ce365f5d',
   name: 'Raju',
   age: 23,
   designation: 'Designer' 
}

ตอนนี้ใช้ไฟล์ _rev และรหัสของเอกสารคุณสามารถลบสิ่งนี้ได้โดยใช้ไฟล์ remove() วิธีการดังแสดงในรหัสต่อไปนี้

//Requiring the package
var PouchDB = require('PouchDB');

//Creating the database object
var db = new PouchDB('my_database');

//Deleting an existing document
db.remove('001', '3-552920d1ca372986fad7b996ce365f5d', function(err) {
   if (err) {
      return console.log(err);
   } else {
      console.log("Document deleted successfully");
   }
});

บันทึกรหัสด้านบนในไฟล์ที่มีชื่อ Delete_Document.js. เปิดพรอมต์คำสั่งและเรียกใช้ไฟล์ JavaScript โดยใช้node ดังแสดงด้านล่าง

C:\PouchDB_Examples >node Delete_Document.js

สิ่งนี้จะลบเนื้อหาของเอกสารที่กำหนดซึ่งมีอยู่ในฐานข้อมูลที่ชื่อ my_databaseซึ่งจัดเก็บไว้ในเครื่อง ข้อความต่อไปนี้จะปรากฏขึ้น.

Document deleted successfully

การลบเอกสารจากฐานข้อมูลระยะไกล

คุณยังสามารถลบเอกสารที่มีอยู่ออกจากฐานข้อมูลที่จัดเก็บจากระยะไกลบนเซิร์ฟเวอร์ (CouchDB)

ในการทำเช่นนั้นแทนที่จะใช้ชื่อฐานข้อมูลคุณต้องส่งเส้นทางไปยังฐานข้อมูลใน CouchDB ซึ่งมีเอกสารที่จะอ่าน

ตัวอย่าง

สมมติว่ามีฐานข้อมูลชื่อ my_databaseในเซิร์ฟเวอร์ CouchDB จากนั้นหากคุณตรวจสอบรายการฐานข้อมูลใน CouchDB โดยใช้ URLhttp://127.0.0.1:5984/_utils/index.html คุณจะได้รับภาพหน้าจอต่อไปนี้

โดยคลิกที่ฐานข้อมูลชื่อ my_databaseคุณสามารถดูภาพหน้าจอต่อไปนี้ ที่นี่คุณสามารถสังเกตได้ว่าฐานข้อมูลมีเอกสารที่มี id001.

ต่อไปนี้เป็นตัวอย่างของการลบเนื้อหาของเอกสารที่มี id“001” ที่มีอยู่ในฐานข้อมูลชื่อ my_database ซึ่งถูกเก็บไว้ในเซิร์ฟเวอร์ CouchDB

//Requiring the package
var PouchDB = require('PouchDB');

//Creating the database object
var db = new PouchDB('http://localhost:5984/my_database');

//Deleting an existing document
db.remove('001', '3-552920d1ca372986fad7b996ce365f5d', function(err) {
   if (err) {
      return console.log(err);
   } else {
      console.log("Document deleted successfully");
   }
});

บันทึกรหัสด้านบนในไฟล์ที่มีชื่อ Remote_Delete_Document.js. เปิดพรอมต์คำสั่งและเรียกใช้ไฟล์ JavaScript โดยใช้node ดังแสดงด้านล่าง

C:\PouchDB_Examples >node Remote_Delete_Document.js

ซึ่งจะลบเอกสารที่กำหนดซึ่งมีอยู่ในฐานข้อมูลที่ชื่อ my_databaseซึ่งเก็บไว้ใน CouchDB ข้อความต่อไปนี้จะปรากฏขึ้น.

Document deleted successfully

คุณสามารถสร้างอาร์เรย์ (ชุด) ของเอกสารใน PouchDB โดยใช้ไฟล์ db.bulkDocs()วิธี. ในขณะที่สร้างเอกสารให้ใช้วิธีนี้หากเราไม่ระบุค่า _id ในนามของเรา PouchDB จะสร้างรหัสเฉพาะสำหรับเอกสารทั้งหมดในจำนวนมาก

ไวยากรณ์

ต่อไปนี้เป็นไวยากรณ์ของการใช้ db.bulkDocs()วิธีการของ PouchDB คุณสามารถจัดเก็บเอกสารทั้งหมดที่จะสร้างใน PouchDB ในอาร์เรย์และส่งต่อไปยังเมธอดนี้เป็นพารามิเตอร์ นอกจากนี้วิธีนี้ยังยอมรับฟังก์ชันการเรียกกลับ (ทางเลือก) เป็นพารามิเตอร์

db.bulkDocs(docs, [options], [callback])

ตัวอย่าง

ต่อไปนี้เป็นตัวอย่างของการสร้างเอกสารหลายชุดใน PouchDB โดยใช้ไฟล์ db.bulkDocs ()วิธี. เอกสารที่เราสร้างควรอยู่ในรูปแบบ JSON ซึ่งเป็นชุดคู่คีย์ - ค่าที่คั่นด้วยลูกน้ำ (,) และอยู่ภายในวงเล็บปีกกา ({}).

//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");
   }
});

บันทึกรหัสด้านบนในไฟล์ที่มีชื่อ Create_Batch.js. เปิดพรอมต์คำสั่งและเรียกใช้ไฟล์ JavaScript โดยใช้node ดังแสดงด้านล่าง

C:\PouchDB_Examples >node Create_Batch.js

สิ่งนี้สร้างเอกสารที่กำหนดในฐานข้อมูล PouchDB ที่ชื่อ my_databaseซึ่งจัดเก็บไว้ในเครื่อง ข้อความต่อไปนี้จะปรากฏขึ้น

Documents created Successfully

การแทรกชุดงานในฐานข้อมูลระยะไกล

คุณสามารถแทรกอาร์เรย์ของเอกสารในฐานข้อมูลที่จัดเก็บจากระยะไกลบนเซิร์ฟเวอร์ (CouchDB)

ในการทำเช่นนั้นแทนที่จะเป็นชื่อฐานข้อมูลคุณต้องส่งเส้นทางไปยังฐานข้อมูลที่เราต้องการสร้างเอกสารใน CouchDB

ตัวอย่าง

สมมติว่ามีฐานข้อมูลชื่อ my_databaseในเซิร์ฟเวอร์ CouchDB จากนั้นหากคุณตรวจสอบรายการฐานข้อมูลใน CouchDB โดยใช้ URLhttp://127.0.0.1:5984/_utils/index.html คุณจะได้รับภาพหน้าจอต่อไปนี้

ต่อไปนี้เป็นตัวอย่างของการแทรกอาร์เรย์ของเอกสารในฐานข้อมูลที่ชื่อ my_database ซึ่งบันทึกไว้ในเซิร์ฟเวอร์ CouchDB

//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");
   }
});

บันทึกรหัสด้านบนในไฟล์ที่มีชื่อ Remote_Create_Batch.js. เปิดพรอมต์คำสั่งและเรียกใช้ไฟล์ JavaScript โดยใช้node ดังแสดงด้านล่าง

C:\PouchDB_Examples >node Remote_Create_Batch.js

สิ่งนี้สร้างเอกสารที่กำหนดในฐานข้อมูล PouchDB ที่ชื่อ my_databaseซึ่งเก็บไว้ใน CouchDB ข้อความต่อไปนี้จะปรากฏขึ้น.

Document created Successfully

การยืนยัน

หลังจากดำเนินการตามโปรแกรมข้างต้นหากคุณไปที่ไฟล์ my_database อีกครั้งคุณสามารถสังเกตเอกสารที่สร้างขึ้นดังที่แสดงในภาพหน้าจอต่อไปนี้

คุณสามารถอ่าน / ดึงเอกสารหลายชุด / จำนวนมากจากฐานข้อมูลใน PouchDB โดยใช้ไฟล์ allDocs() วิธี.

ไวยากรณ์

ต่อไปนี้เป็นไวยากรณ์ของการใช้ db.allDocs()วิธีการของ PouchDB วิธีนี้ยอมรับฟังก์ชันเรียกกลับที่เป็นทางเลือก

db.allDocs()

ตัวอย่าง

ต่อไปนี้เป็นตัวอย่างของการดึงเอกสารทั้งหมดในฐานข้อมูลที่ชื่อ my_database ที่จัดเก็บไว้ในเครื่องโดยใช้ db.allDocs()วิธี. วิธีนี้จะดึงอาร์เรย์ของเอกสารในรูปแบบของวัตถุเพื่อรับเนื้อหาของเอกสารแต่ละฉบับที่คุณต้องการเรียกว่าdocs.rows.

//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(function(err, docs) {
   if (err) {
      return console.log(err);
   } else {
      console.log (docs.rows);
   }
});

บันทึกรหัสด้านบนในไฟล์ที่มีชื่อ Read_All_Document.js. เปิดพรอมต์คำสั่งและเรียกใช้ไฟล์ JavaScript โดยใช้node ดังแสดงด้านล่าง

C:\PouchDB_Examples >node Read_All_Document.js

สิ่งนี้อ่านเอกสารทั้งหมดที่มีอยู่ในฐานข้อมูลที่ชื่อ my_databaseซึ่งจัดเก็บไว้ในเครื่อง ข้อความต่อไปนี้แสดงขึ้นบนคอนโซล

[ 
   { 
      id: '001',
      key: '001',
      value: { rev: '1-9dc57f5faa7ea90eeec22eba8bfd05f5' } 
   },
   { 
      id: '002',
      key: '002',
      value: { rev: '1-9bf80afcedb9f8b5b35567292affb254' } 
    },
   { 
      id: '003',
      key: '003',
      value: { rev: '1-1204f108e41bf8baf867856d5da16c57' } 
   }
]

โดยทั่วไปดังที่แสดงในผลลัพธ์ข้างต้นโดยใช้ allDocs() วิธีที่คุณสามารถดูได้เฉพาะไฟล์ _id, key และ _revฟิลด์ของเอกสารแต่ละฉบับ อย่างไรก็ตามหากต้องการรวมเอกสารทั้งหมดในผลลัพธ์คุณต้องสร้างพารามิเตอร์ที่เป็นทางเลือกinclude_docs จริงตามที่แสดงด้านล่าง

//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);
   }
});

การดำเนินการตามรหัสข้างต้นจะให้รายการเอกสารที่สมบูรณ์ในเอกสารที่ระบุดังที่แสดงในรหัสต่อไปนี้

[ 
   { 
      id: '001',
      key: '001',
      value: { rev: '1-9dc57f5faa7ea90eeec22eba8bfd05f5' },
      doc: { 
         name: 'Ram',
         age: 23,
         Designation: 'Programmer',
         _id: '001',
         _rev: '1-9dc57f5faa7ea90eeec22eba8bfd05f5' 
      } 
   },
   { 
      id: '002',
      key: '002',
      value: { rev: '1-9bf80afcedb9f8b5b35567292affb254' },
      doc: { 
         name: 'Robert',
         age: 24,
         Designation: 'Programmer',
         _id: '002',
         _rev: '1-9bf80afcedb9f8b5b35567292affb254' 
      } 
   },
   { 
      id: '003',
      key: '003',
      value: { rev: '1-1204f108e41bf8baf867856d5da16c57' },
      doc: { 
         name: 'Rahim',
         age: 25,
         Designation: 'Programmer',
         _id: '003',
         _rev: '1-1204f108e41bf8baf867856d5da16c57' 
      } 
   }
]

การอ่าน Batch จากฐานข้อมูลระยะไกล

คุณยังสามารถดึงเอกสารทั้งหมดจากฐานข้อมูลที่จัดเก็บจากระยะไกลบนเซิร์ฟเวอร์ (CouchDB)

ในการทำเช่นนั้นแทนชื่อฐานข้อมูลคุณต้องส่งเส้นทางไปยังฐานข้อมูลใน CouchDB ซึ่งมีเอกสารที่จะอ่าน

ตัวอย่าง

สมมติว่ามีฐานข้อมูลชื่อ my_databaseในเซิร์ฟเวอร์ CouchDB จากนั้นหากคุณตรวจสอบรายการฐานข้อมูลใน CouchDB โดยใช้ URLhttp://127.0.0.1:5984/_utils/index.html คุณจะได้รับภาพหน้าจอต่อไปนี้

ต่อไปนี้เป็นตัวอย่างของการอ่านเอกสารทั้งหมดที่มีอยู่ในฐานข้อมูลที่ชื่อ my_database ซึ่งถูกเก็บไว้ในเซิร์ฟเวอร์ CouchDB

//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);
   }
});

บันทึกรหัสด้านบนในไฟล์ที่มีชื่อ Remote_Read_AllDocument.js. เปิดพรอมต์คำสั่งและเรียกใช้ไฟล์ JavaScript โดยใช้node ดังแสดงด้านล่าง

C:\PouchDB_Examples >node Remote_Read_AllDocument.js

สิ่งนี้อ่านเนื้อหาของเอกสารที่กำหนดซึ่งมีอยู่ในฐานข้อมูลที่ชื่อ my_database ซึ่งเก็บไว้ใน CouchDB และแสดงบนคอนโซลดังที่แสดงด้านล่าง

[ 
   { 
      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' 
      } 
   } 
]

คุณสามารถอัปเดตอาร์เรย์ของเอกสารใน PouchDB พร้อมกันโดยใช้ไฟล์ bulkDocs()วิธี. ในการทำเช่นนั้นคุณต้องสร้างอาร์เรย์ของเอกสารโดยที่แต่ละเอกสารประกอบด้วย_id, _rev และค่าที่จะอัปเดต

สมมติว่าฐานข้อมูลชื่อ my_database ที่เก็บไว้ในเครื่องใน PouchDB ประกอบด้วยเอกสาร 3 ชุด ได้แก่ doc1, doc2, doc3 โดยมีเนื้อหาดังต่อไปนี้

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'}

สมมติว่าเราต้องเพิ่มค่าอายุในเอกสารทั้ง 3 ฉบับเป็นเวลา 2 ปี เพื่อให้สิ่งนี้เกิดขึ้นก่อนอื่นคุณต้องได้รับไฟล์_revค่า ดังนั้นดึงเนื้อหาของเอกสารเหล่านี้โดยใช้รหัสต่อไปนี้

//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);
   }
});

บันทึกรหัสด้านบนเป็น bulk_fetch.js. ในการดำเนินการโปรแกรมข้างต้นจะให้ค่า _id และ _rev ของเอกสารในฐานข้อมูลดังที่แสดงด้านล่าง

[ 
   { 
      id: '001',
      key: '001',
      value: { rev: '1-1604b0c3ff69dc1e261265fd60808404' } 
   },
   { 
      id: '002',
      key: '002',
      value: { rev: '1-b5e49db7e984841bf12a13e3ee548125' } 
   },
   { 
      id: '003',
      key: '003',
      value: { rev: '1-a7b342786ecc707aa91f3b321a177b51' } 
   } 
]

ตอนนี้คุณสามารถอัปเดตเอกสารโดยใช้เอกสารนั้น ๆ _id และ _rev ค่าตามที่แสดงด้านล่าง

//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");
   }
});

บันทึกรหัสด้านบนในไฟล์ที่มีชื่อ Update_All_Document.js. เปิดพรอมต์คำสั่งและเรียกใช้ไฟล์ JavaScript โดยใช้โหนดดังที่แสดงด้านล่าง

C:\PouchDB_Examples >node Update_All_Document.js

สิ่งนี้จะอัปเดตเอกสารทั้งหมดที่มีอยู่ในฐานข้อมูลที่ชื่อ my_database ซึ่งจัดเก็บไว้ในเครื่องโดยแสดงข้อความต่อไปนี้

Documents Updated Successfully

ตอนนี้ถ้าคุณเรียกใช้ไฟล์ bulk_fetch.js โปรแกรมโดยการเพิ่ม {include_docs: true} เป็นพารามิเตอร์ถึง allDocs() ก่อนการโทรกลับจากนั้นคุณจะเห็นค่าของเอกสารที่อัปเดตดังที่แสดงด้านล่าง

[ 
   { 
      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' 
      } 
   } 
]

การอัปเดตชุดงานจากฐานข้อมูลระยะไกล

คุณสามารถอัพเดตเอกสารทั้งหมดจากฐานข้อมูลที่จัดเก็บจากระยะไกลบนเซิร์ฟเวอร์ (CouchDB)

ในการทำเช่นนั้นแทนที่จะใช้ชื่อฐานข้อมูลคุณต้องส่งเส้นทางไปยังฐานข้อมูลใน CouchDB ซึ่งมีเอกสารที่จะอ่าน

ตัวอย่าง

สมมติว่ามีฐานข้อมูลชื่อ my_databaseในเซิร์ฟเวอร์ CouchDB จากนั้นหากคุณตรวจสอบรายการฐานข้อมูลใน CouchDB โดยใช้ URLhttp://127.0.0.1:5984/_utils/index.html คุณจะได้รับภาพหน้าจอต่อไปนี้

และสมมติว่าเราเลือกฐานข้อมูลชื่อ my_databaseคุณสามารถสังเกตได้ว่ามีเอกสาร 3 ชุดดังที่แสดงในภาพหน้าจอต่อไปนี้

ตอนนี้ดึงเนื้อหาของเอกสารเหล่านี้โดยใช้รหัสต่อไปนี้

//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);
   }
});

บันทึกรหัสด้านบนเป็น remote_bulk_fetch.js. ในการดำเนินการโปรแกรมข้างต้นจะให้เนื้อหาของเอกสารทั้งหมดในฐานข้อมูลดังที่แสดงด้านล่าง

[ 
   { 
      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' 
      } 
   } 
]

ต่อไปนี้เป็นตัวอย่างของการอัพเดตเอกสารทั้งหมดที่มีอยู่ในฐานข้อมูลที่ชื่อ my_database ซึ่งถูกเก็บไว้ในเซิร์ฟเวอร์ CouchDB

//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"); 
   } 
});

บันทึกรหัสด้านบนในไฟล์ที่มีชื่อ Remote_Update_Document.js. เปิดพรอมต์คำสั่งและเรียกใช้ไฟล์ JavaScript โดยใช้โหนดดังที่แสดงด้านล่าง

C:\PouchDB_Examples >node Remote_Update_Document.js

สิ่งนี้จะอัพเดตเนื้อหาของเอกสารที่กำหนดทั้งหมดที่มีอยู่ในฐานข้อมูลที่ชื่อ my_database ซึ่งเก็บไว้ใน CouchDB และแสดงข้อความต่อไปนี้

Documents Updated Successfully

ตอนนี้ถ้าคุณเรียกใช้ไฟล์ remote_bulk_fetch.js คุณจะเห็นค่าของเอกสารที่อัปเดตดังที่แสดงด้านล่าง

[ 
   { 
      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 
      } 
   } 
]

คุณสามารถลบอาร์เรย์ของเอกสารใน PouchDB พร้อมกันโดยใช้ไฟล์ bulkDocs()วิธี. ในการทำเช่นนั้นคุณต้องสร้างอาร์เรย์ของเอกสารที่จะลบโดยที่แต่ละเอกสารควรมี_id และ _rev. นอกจากนี้คุณต้องเพิ่มคู่คีย์ - ค่าอื่น_deleted: true.

สมมติว่าฐานข้อมูลชื่อ my_database ที่เก็บไว้ในเครื่องใน PouchDB ประกอบด้วยเอกสาร 3 ชุด ได้แก่ doc1, doc2, doc3 โดยมีเนื้อหาดังต่อไปนี้

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'}

และบอกว่าเราต้องลบเอกสารทั้งสามชุด จากนั้นก่อนอื่นคุณต้องได้รับ_revค่า ดังนั้นดึงเนื้อหาของเอกสารเหล่านี้โดยใช้รหัสต่อไปนี้

//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);
   }
});

บันทึกรหัสด้านบนเป็น bulk_fetch.js. การดำเนินการตามโปรแกรมข้างต้นจะทำให้คุณได้ค่า _id และ _rev ของเอกสารในฐานข้อมูลดังที่แสดงด้านล่าง

[ 
   { 
      id: '001',
      key: '001',
      value: { rev: '1-1604b0c3ff69dc1e261265fd60808404' } 
   },
   { 
      id: '002',
      key: '002',
      value: { rev: '1-b5e49db7e984841bf12a13e3ee548125' } 
   },
   { 
      id: '003',
      key: '003',
      value: { rev: '1-a7b342786ecc707aa91f3b321a177b51' } 
   } 
]

ตอนนี้คุณสามารถลบเอกสารโดยใช้เอกสารนั้น ๆ _id และ _rev ค่าตามที่แสดงด้านล่าง

//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");
   }
});

บันทึกรหัสด้านบนในไฟล์ที่มีชื่อ Delete_All_Document.js. เปิดพรอมต์คำสั่งและเรียกใช้ไฟล์ JavaScript โดยใช้โหนดดังที่แสดงด้านล่าง

C:\PouchDB_Examples >node Delete_All_Document.js

ซึ่งจะลบเอกสารทั้งหมดที่มีอยู่ในฐานข้อมูลที่ชื่อ my_database ซึ่งจัดเก็บไว้ในเครื่องโดยแสดงข้อความต่อไปนี้

Documents Deleted Successfully

ตอนนี้ถ้าคุณเรียกใช้ไฟล์ bulk_fetch.js คุณสามารถสังเกตวงเล็บว่างบนคอนโซลที่ระบุว่าฐานข้อมูลว่างดังที่แสดงด้านล่าง

[]

การลบ Batch จากฐานข้อมูลระยะไกล

คุณสามารถอัพเดตเอกสารทั้งหมดจากฐานข้อมูลที่จัดเก็บจากระยะไกลบนเซิร์ฟเวอร์ (CouchDB)

ในการทำเช่นนั้นแทนที่จะใช้ชื่อฐานข้อมูลคุณต้องส่งเส้นทางไปยังฐานข้อมูลใน CouchDB ซึ่งมีเอกสารที่จะอ่าน

ตัวอย่าง

สมมติว่ามีฐานข้อมูลชื่อ my_databaseในเซิร์ฟเวอร์ CouchDB จากนั้นหากคุณตรวจสอบรายการฐานข้อมูลใน CouchDB โดยใช้ URLhttp://127.0.0.1:5984/_utils/index.html คุณจะได้รับภาพหน้าจอต่อไปนี้

ถ้าเราเลือกฐานข้อมูลชื่อ my_databaseคุณสามารถสังเกตได้ว่ามีเอกสาร 3 ชุดดังที่แสดงในภาพหน้าจอต่อไปนี้

ต่อไปนี้เป็นตัวอย่างของการลบเอกสารทั้งหมดที่มีอยู่ในฐานข้อมูลที่ชื่อ my_database ซึ่งถูกเก็บไว้ในเซิร์ฟเวอร์ CouchDB

//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");
   }
});

บันทึกรหัสด้านบนในไฟล์ที่มีชื่อ Remote_delete_AllDocuments.js. เปิดพรอมต์คำสั่งและเรียกใช้ไฟล์ JavaScript โดยใช้โหนดดังที่แสดงด้านล่าง

C:\PouchDB_Examples >node Remote_Delete_AllDocuments.js

สิ่งนี้จะลบเนื้อหาของเอกสารที่กำหนดทั้งหมดที่มีอยู่ในฐานข้อมูลที่ชื่อ my_database ซึ่งเก็บไว้ใน CouchDB และแสดงข้อความต่อไปนี้

Documents Deleted Successfully

คุณสามารถแนบวัตถุไบนารีเข้ากับเอกสารโดยใช้ไฟล์ putAttachment() วิธีการใน PouchDB

ไวยากรณ์

ต่อไปนี้เป็นไวยากรณ์ของ putAttachment(). วิธีนี้เราต้องส่งรหัสเอกสารรหัสเอกสารแนบประเภท MIME พร้อมกับไฟล์แนบ วิธีนี้ยังยอมรับฟังก์ชันเรียกกลับที่เป็นทางเลือก

db.putAttachment( docId, attachmentId, attachment, type, [callback] );

เราสามารถเตรียมไฟล์แนบโดยใช้วัตถุหยดหรือบัฟเฟอร์ได้ที่ไหน blob ใช้ขณะทำงานกับเบราว์เซอร์และ buffer ใช้ในขณะที่ทำงานกับไฟล์ Node.jsเนื่องจากเรากำลังสาธิตโปรแกรมของเราใน Node.js เราจึงใช้วัตถุบัฟเฟอร์เพื่อเตรียมเอกสาร

ตัวอย่าง

ต่อไปนี้เป็นตัวอย่างของการสร้างเอกสารพร้อมไฟล์แนบภายในฐานข้อมูลที่ชื่อ my_database ใน PouchDB โดยใช้ไฟล์ putAttachment() วิธี.

//Requiring the package 
var PouchDB = require('PouchDB');

//Creating the database object var db = new PouchDB('my_database');

//Preparing the attachment 
var my_attachment = new Buffer(['Welcome to tutorialspoint'], {type: 'text/plain'});

//Adding attachment to a document 
db.putAttachment('001', 'att_1.txt', my_attachment, 'text/plain', function(err, res) { 
   if (err) { 
      return console.log(err); 
   } else { 
      console.log(res+"Attachment added successfully") 
   } 
});

บันทึกรหัสด้านบนในไฟล์ที่มีชื่อ Add_Attachment.js. เปิดพรอมต์คำสั่งและเรียกใช้ไฟล์ JavaScript โดยใช้node ดังแสดงด้านล่าง

C:\PouchDB_Examples >node Add_Attachment.js

สิ่งนี้จะสร้างเอกสารว่างโดยเพิ่มสิ่งที่แนบมาในฐานข้อมูลที่ชื่อ my_database ซึ่งเก็บไว้ใน PouchDB และแสดงข้อความต่อไปนี้

Attachment added successfully

คุณสามารถตรวจสอบได้ว่ามีการเพิ่มสิ่งที่แนบมาหรือไม่โดยการอ่านเอกสารโดยใช้รหัสต่อไปนี้

//Requiring the package 
var PouchDB = require('PouchDB');

//Creating the database object var db = new PouchDB('my_database');

//Reading the Document 
db.get('001',{attachments: true}, function(err, doc) { 
   if (err) { 
      return console.log(err); 
   } else { 
      console.log(doc); 
   } 
});

บันทึกรหัสด้านบนเป็น read_doc.jsและดำเนินการ เมื่อใช้งานโปรแกรมนี้คุณจะเห็นเนื้อหาต่อไปนี้ของเอกสาร

{ 
   _attachments: { 
      att_1.txt: { 
         content_type: 'text/plain',
         digest: 'md5-k7iFrf4NoInN9jSQT9WfcQ==',
         data: 'AA==' 
      } 
   },
   _id: '001',
   _rev: '1-620fd5f41d3328fcbf9ce7504338a51d' 
}

การเพิ่มไฟล์แนบในเอกสารที่มีอยู่

สมมติว่ามีเอกสารในฐานข้อมูลชื่อ my_database PouchDB ด้วย id '002'. คุณสามารถรับเนื้อหาได้โดยเรียกใช้ไฟล์read_doc.js โดยเปลี่ยนค่า id เป็น 002ดังที่แสดงด้านล่าง

{ 
   name: 'Raju',
   age: 23,
   designation: 'Designer',
   _id: '002',
   _rev: '1-05ca7b5f3f4762a9fb2d119cd34c8d40' 
}

ตอนนี้คุณสามารถเพิ่มไฟล์แนบลงในเอกสารนี้โดยใช้ไฟล์ _rev มูลค่า.

//Requiring the package 
var PouchDB = require('PouchDB');

//Creating the database object var db = new PouchDB('my_database');

//Adding attachment to existing document 
var my_attachment = new Buffer (['Welcome to tutorialspoint'], {type: 'text/plain'});

rev = '1-05ca7b5f3f4762a9fb2d119cd34c8d40'; 
db.putAttachment('002', 'att_1.txt', rev, my_attachment, 'text/plain', function(err, res) { 
   if (err) { 
      return console.log(err); 
   } else { 
      console.log (res + "Attachment added successfully") 
   } 
});

บันทึกรหัสด้านบนในไฟล์ที่มีชื่อ Add_Attachment_to_doc.js. เปิดพรอมต์คำสั่งและเรียกใช้ไฟล์ JavaScript โดยใช้node ดังแสดงด้านล่าง

C:\PouchDB_Examples >node Add_Attachment_to_doc.js

สิ่งนี้จะเพิ่มสิ่งที่แนบมาในเอกสารที่ระบุโดยแสดงข้อความต่อไปนี้

Attachment added successfully

หากคุณเปลี่ยนค่า id ใน read_doc.js ถึง 002 และดำเนินการคุณจะได้รับผลลัพธ์ต่อไปนี้

{ 
   name: 'Raju',
   age: 23,
   designation: 'Designer',
   _attachments: { 
      att_1: { 
         content_type: 'text/plain',
         digest: 'md5-k7iFrf4NoInN9jSQT9WfcQ==',
         data: 'AA==' 
      } 
   },
   _id: '002',
   _rev: '2-3bb4891b954699bce28346723cc7a709' 
}

การเพิ่มเอกสารแนบในเอกสารระยะไกล

คุณสามารถเพิ่มสิ่งที่แนบไปกับเอกสารที่มีอยู่ในฐานข้อมูลที่จัดเก็บจากระยะไกลบนเซิร์ฟเวอร์ (CouchDB)

ในการทำเช่นนั้นแทนที่จะใช้ชื่อฐานข้อมูลคุณต้องส่งเส้นทางไปยังฐานข้อมูลใน CouchDB ซึ่งมีเอกสารที่จะอ่าน

ตัวอย่าง

สมมติว่ามีฐานข้อมูลชื่อ my_databaseในเซิร์ฟเวอร์ CouchDB จากนั้นหากคุณตรวจสอบรายการฐานข้อมูลใน CouchDB โดยใช้ URLhttp://127.0.0.1:5984/_utils/index.html คุณจะได้รับภาพหน้าจอต่อไปนี้

และถ้าคุณเลือกฐานข้อมูลชื่อ my_databaseคุณสามารถดูเนื้อหาได้ตามที่แสดงด้านล่าง

ต่อไปนี้เป็นตัวอย่างของการเพิ่มไฟล์แนบในเอกสาร 001 เก็บไว้ในฐานข้อมูลชื่อ my_database ซึ่งถูกเก็บไว้ในเซิร์ฟเวอร์ CouchDB

//Requiring the package
var PouchDB = require('PouchDB');

//Creating the database object
var db = new PouchDB('http://localhost:5984/my_database');

//Adding attachment to existing document
var my_attachment = new Buffer (['Welcome to tutorialspoint'], {type: 'text/plain'});

rev = '1-36c34fdcf29a652876219065f9681602';
db.putAttachment('001', 'att_1.txt',rev, my_attachment, 'text/plain', function(err, res) {
   if (err) {
      return console.log(err);
   } else {
      console.log (res+ "Attachment added successfully")
   }
});

บันทึกรหัสด้านบนในไฟล์ที่มีชื่อ Remote_Add_Attachment.js. เปิดพรอมต์คำสั่งและเรียกใช้ไฟล์ JavaScript โดยใช้node ดังแสดงด้านล่าง

C:\PouchDB_Examples >node Remote_Add_Attachment.js

สิ่งนี้จะเพิ่มสิ่งที่แนบมาในเอกสารที่ระบุโดยแสดงข้อความต่อไปนี้

Attachment added successfully

ตอนนี้หากคุณตรวจสอบเอกสารคุณสามารถสังเกตสิ่งที่แนบมาที่เพิ่มเข้าไปดังที่แสดงในภาพหน้าจอต่อไปนี้

คุณสามารถดึงไฟล์แนบจาก PouchDB โดยใช้ไฟล์ getAttachment()วิธี. วิธีนี้จะส่งคืนวัตถุหยดหรือบัฟเฟอร์เสมอ

ไวยากรณ์

ต่อไปนี้เป็นไวยากรณ์ของ getAttachment(). วิธีนี้เราต้องส่งรหัสเอกสารและรหัสเอกสารแนบ วิธีนี้ยังยอมรับฟังก์ชันเรียกกลับที่เป็นทางเลือก

db.getAttachment( docId, attachmentId, [callback] );

ตัวอย่าง

ต่อไปนี้เป็นตัวอย่างของการดึงไฟล์แนบของเอกสารที่เก็บไว้ใน PouchDB โดยใช้ getAttachment()วิธี. เมื่อใช้รหัสนี้เรากำลังพยายามดึงไฟล์แนบatt_1.txt จากเอกสาร 001.

//Requiring the package
var PouchDB = require('PouchDB');

//Creating the database object
var db = new PouchDB('my_database');

//Retrieving an attachment from a document
db.getAttachment('001', 'att_1.txt', function(err, blob_buffer) {
   if (err) {
      return console.log(err);
   } else {
      console.log(blob_buffer);
   }
});

บันทึกรหัสด้านบนในไฟล์ที่มีชื่อ Retrieve_Attachment.js. เปิดพรอมต์คำสั่งและเรียกใช้ไฟล์ JavaScript โดยใช้node ดังแสดงด้านล่าง

C:\PouchDB_Examples >node Retrieve_Attachment.js

สิ่งนี้จะดึงไฟล์แนบของเอกสารและแสดงบนคอนโซลดังที่แสดงด้านล่าง

<Buffer 00>

การดึงไฟล์แนบจากเอกสารระยะไกล

คุณยังสามารถดึงไฟล์แนบของเอกสารที่มีอยู่ในฐานข้อมูลที่จัดเก็บจากระยะไกลบนเซิร์ฟเวอร์ (CouchDB)

ในการทำเช่นนั้นแทนที่จะใช้ชื่อฐานข้อมูลคุณต้องส่งเส้นทางไปยังฐานข้อมูลใน CouchDB ซึ่งมีเอกสารที่จะอ่าน

ตัวอย่าง

สมมติว่ามีฐานข้อมูลชื่อ my_databaseในเซิร์ฟเวอร์ CouchDB จากนั้นหากคุณตรวจสอบรายการฐานข้อมูลใน CouchDB โดยใช้ URLhttp://127.0.0.1:5984/_utils/index.html คุณจะได้รับภาพหน้าจอต่อไปนี้

หากคุณเลือกฐานข้อมูลชื่อ my_databaseคุณสามารถดูเนื้อหาได้ตามที่แสดงด้านล่าง

สมมติว่ามีเอกสารแนบในเอกสารนี้ดังที่แสดงด้านล่าง

ต่อไปนี้เป็นตัวอย่างของการดึงไฟล์แนบของเอกสาร 001 ที่มีอยู่ในฐานข้อมูลชื่อ my_databaseซึ่งถูกเก็บไว้ในเซิร์ฟเวอร์ CouchDB

//Requiring the package 
var PouchDB = require('PouchDB');

//Creating the database object 
var db = new PouchDB('http://localhost:5984/my_database');

//Retrieving an attachment from a document 
db.getAttachment('001', 'att_1.txt', function(err, blob_buffer) { 
   if (err) { 
      return console.log(err); 
   } else { 
      console.log(blob_buffer); 
   } 
});

บันทึกรหัสด้านบนในไฟล์ที่มีชื่อ Remote_Retrieve_Attachment.js. เปิดพรอมต์คำสั่งและเรียกใช้ไฟล์ JavaScript โดยใช้node ดังแสดงด้านล่าง

C:\PouchDB_Examples >node Remote_Retrieve_Attachment.js

สิ่งนี้จะดึงไฟล์แนบของเอกสารและแสดงบนคอนโซลดังที่แสดงด้านล่าง

<Buffer 00>

คุณสามารถลบไฟล์แนบจาก PouchDB โดยใช้ไฟล์ removeAttachment() วิธี.

ไวยากรณ์

ต่อไปนี้เป็นไวยากรณ์ของ removeAttachment()วิธี. วิธีนี้เราต้องส่งรหัสเอกสารรหัสเอกสารแนบและค่า _rev วิธีนี้ยังยอมรับฟังก์ชันเรียกกลับที่เป็นทางเลือก

db.removeAttachment ( docId, attachmentId, rev, [callback] );

ตัวอย่าง

สมมติว่ามีเอกสารใน PouchDB พร้อม id 001ซึ่งประกอบด้วยรหัสชื่ออายุการกำหนดของพนักงานพร้อมไฟล์แนบตามที่แสดงด้านล่าง

{ 
   name: 'Raju',
   age: 23,
   designation: 'Designer',
   _attachments: { 
      'att_1.txt': { 
         content_type: 'text/plain',
         digest: 'md5-k7iFrf4NoInN9jSQT9WfcQ==',
         data: 'AA==' 
      } 
   },
   _id: '001',
   _rev: '2-cdec6c9f45ddbee7d456945654742d43' 
}

ต่อไปนี้เป็นตัวอย่างของการลบไฟล์แนบของเอกสารนี้ 001 เก็บไว้ใน PouchDB โดยใช้ไฟล์ removeAttachment() วิธี.

//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")
   }
});

บันทึกรหัสด้านบนในไฟล์ที่มีชื่อ Remove_Attachment.js. เปิดพรอมต์คำสั่งและเรียกใช้ไฟล์ JavaScript โดยใช้node ดังแสดงด้านล่าง

C:\PouchDB_Examples >node Remove_Attachment.js

สิ่งนี้จะลบสิ่งที่แนบมาของเอกสารและแสดงข้อความบนคอนโซลดังที่แสดงด้านล่าง

Attachment deleted successfully

หลังจากการลบคุณสามารถตรวจสอบเนื้อหาของเอกสารได้โดยดำเนินการตามรหัสต่อไปนี้

//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);
   }
});

บันทึกรหัสนี้เป็น read.jsและดำเนินการ ในการดำเนินการคุณจะได้รับเนื้อหาของเอกสารหลังจากลบไฟล์แนบดังที่แสดงด้านล่าง

{ 
   name: 'Raju',
   age: 23,
   designation: 'Designer',
   _id: '001',
   _rev: '3-da775487a6ed0495f2e49c543384f8e8' 
}

การลบสิ่งที่แนบมาจากเอกสารระยะไกล

คุณสามารถลบไฟล์แนบของเอกสารที่มีอยู่ในฐานข้อมูลที่จัดเก็บจากระยะไกลบนเซิร์ฟเวอร์ (CouchDB)

ในการทำเช่นนั้นแทนที่จะใช้ชื่อฐานข้อมูลคุณต้องส่งเส้นทางไปยังฐานข้อมูลใน CouchDB ซึ่งมีเอกสารที่จะอ่าน

ตัวอย่าง

สมมติว่ามีฐานข้อมูลชื่อ my_databaseในเซิร์ฟเวอร์ CouchDB จากนั้นหากคุณตรวจสอบรายการฐานข้อมูลใน CouchDB โดยใช้ URLhttp://127.0.0.1:5984/_utils/index.html คุณจะได้รับภาพหน้าจอต่อไปนี้

และถ้าคุณเลือกฐานข้อมูลชื่อ my_databaseคุณสามารถดูเนื้อหาได้ตามที่แสดงด้านล่าง

สมมติว่ามีสิ่งที่แนบมาในเอกสารนี้ดังที่แสดงด้านล่าง

ต่อไปนี้เป็นตัวอย่างของการลบไฟล์แนบที่กล่าวถึงข้างต้นของเอกสาร 001 ที่มีอยู่ในฐานข้อมูลชื่อ my_database ซึ่งถูกเก็บไว้ในเซิร์ฟเวอร์ CouchDB

//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") 
   } 
});

บันทึกรหัสด้านบนในไฟล์ที่มีชื่อ Remote_Delete_Attachment.js. เปิดพรอมต์คำสั่งและเรียกใช้ไฟล์ JavaScript โดยใช้node ดังแสดงด้านล่าง

C:\PouchDB_Examples >node Remote_Delete_Attachment.js

สิ่งนี้จะลบไฟล์แนบที่มีอยู่และแสดงข้อความต่อไปนี้

Attachment Deleted successfully

หากคุณเข้าชมเอกสารอีกครั้งคุณจะสังเกตได้ว่าไฟล์แนบถูกลบดังที่แสดงในภาพหน้าจอต่อไปนี้

คุณสมบัติที่สำคัญที่สุดอย่างหนึ่งของ PouchDB คือการจำลองแบบกล่าวคือคุณสามารถทำสำเนาฐานข้อมูลได้ คุณสามารถจำลองอินสแตนซ์ PouchDB ที่เก็บไว้ในเครื่องหรืออินสแตนซ์ CouchDB ที่จัดเก็บจากระยะไกล

ไวยากรณ์

ต่อไปนี้เป็นไวยากรณ์ของการจำลองฐานข้อมูลใน PouchDB นี่คือสำเนาของไฟล์source databaseคือเป้าหมาย ด้วยวิธีนี้คุณสามารถส่งผ่านตำแหน่งของฐานข้อมูลต้นทางและปลายทางได้โดยตรงในรูปแบบ String หรือคุณสามารถส่งผ่านอ็อบเจ็กต์ที่เป็นตัวแทนได้

PouchDB.replicate(source, target, [options])

ทั้งซอร์สและเป้าหมายอาจเป็นอินสแตนซ์ PouchDB หรืออินสแตนซ์ CouchDB ก็ได้

การจำลอง LocalDB เป็น CouchDB

สมมติว่ามีฐานข้อมูลที่มีชื่อ sample_database ใน PouchDB และประกอบด้วยเอกสาร 3 ชุด doc1, doc2 และ doc3 ซึ่งมีเนื้อหาดังที่แสดงด้านล่าง

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'}

ต่อไปนี้เป็นตัวอย่างที่สร้างสำเนาของฐานข้อมูลที่ชื่อ sample_database ที่จัดเก็บไว้ใน 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");

บันทึกรหัสด้านบนในไฟล์ที่มีชื่อ Replication_example.js. เปิดพรอมต์คำสั่งและเรียกใช้ไฟล์ JavaScript โดยใช้node ดังแสดงด้านล่าง

C:\PouchDB_Examples >node Replication_example.js

สิ่งนี้สร้างสำเนาของฐานข้อมูลชื่อ sample_database ในอินสแตนซ์ CouchDB และแสดงข้อความบนคอนโซลดังที่แสดงด้านล่าง

Database replicated successfully

คุณสามารถตรวจสอบว่าฐานข้อมูลถูกจำลองแบบในอินสแตนซ์ CouchDB ของคุณหรือไม่โดยคลิกที่ลิงค์ต่อไปนี้ http://127.0.0.1:5984/_utils/index.html.

เมื่อคลิกคุณจะเห็นรายการฐานข้อมูลใน CouchDB ของคุณ คุณยังสามารถสังเกตว่าสำเนาของฐานข้อมูลsample_database ถูกสร้างขึ้นที่นี่

หากคุณเลือกฐานข้อมูลจำลองคุณสามารถดูเนื้อหาดังที่แสดงด้านล่าง

การจำลอง CouchDB เป็น PouchDB

สมมติว่ามีฐานข้อมูลที่มีชื่อ Remote_Database ใน CouchDB และประกอบด้วยเอกสาร 3 ชุด ได้แก่ doc1, doc2 และ doc3 ซึ่งมีเนื้อหาดังที่แสดงด้านล่าง

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'}

ต่อไปนี้เป็นตัวอย่างที่สร้างสำเนาของฐานข้อมูลที่ชื่อ Remote_Database ที่เก็บไว้ใน CouchDB ในที่จัดเก็บในตัวเครื่อง

//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");

บันทึกรหัสด้านบนในไฟล์ที่มีชื่อ Replication_example2.js. เปิดพรอมต์คำสั่งและเรียกใช้ไฟล์ JavaScript โดยใช้node ดังแสดงด้านล่าง

C:\PouchDB_Examples >node Replication_example2.js

สิ่งนี้จะสร้างสำเนาของฐานข้อมูลที่มีชื่อว่า remote_database ในอินสแตนซ์ PouchDB และแสดงข้อความบนคอนโซลดังที่แสดงด้านล่าง

Database replicated successfully

คุณสามารถตรวจสอบว่าฐานข้อมูลถูกจำลองแบบในอินสแตนซ์กระเป๋าของคุณหรือไม่โดยเรียกใช้รหัสต่อไปนี้

//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);
   }
});

หากฐานข้อมูลถูกจำลองแบบในการเรียกใช้โค้ดข้างต้นคุณจะได้รับเนื้อหาของฐานข้อมูลที่จำลองแบบดังที่แสดงด้านล่าง

[ 
   { 
      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' 
      } 
   } 
]

คุณสามารถซิงโครไนซ์ฐานข้อมูลที่เก็บไว้ใน PouchDB กับฐานข้อมูลที่เก็บไว้ใน CouchDB ในบทที่แล้วเราได้เห็นวิธีการจำลองฐานข้อมูลโดยใช้ PouchDB ที่นั่นเราได้ใช้วิธีPouchDB.replicate(source, destination).

นอกจากนี้เรายังสามารถจำลองข้อมูลจากฐานข้อมูลในเครื่องไปยังฐานข้อมูลระยะไกลและจากฐานข้อมูลระยะไกลไปยังฐานข้อมูลภายในโดยใช้ replicate.to() และ replicate.from() วิธีการดังที่แสดงด้านล่าง

//Replicating data from local database to remote database 
localDB.replicate.to(remoteDB);

//Replicating data from remote database to local database 
localDB.replicate.from(remoteDB);

ที่ไหน localDB เป็นออบเจ็กต์ของฐานข้อมูลที่เก็บไว้ใน PouchDB และ remoteDB เป็นวัตถุของฐานข้อมูลที่เก็บไว้ใน CouchDB

ตัวอย่าง

สมมติว่ามีฐานข้อมูลที่มีชื่อ local_database ใน PouchDB และประกอบด้วยเอกสาร 3 ชุด ได้แก่ doc1, doc2 และ doc3 ซึ่งมีเนื้อหาดังที่แสดงด้านล่าง

doc1 = {_id: '003', name: 'Ram', age: 26, Designation: 'Programmer'} 
doc2 = {_id: '004', name: 'Robert', age: 27, Designation: 'Programmer'} 
doc3 = {_id: '005', name: 'Rahim', age: 28, Designation: 'Programmer'}

และมีฐานข้อมูลที่มีชื่อ Remote_Database ใน CouchDB และประกอบด้วยเอกสาร 2 ชุด doc1, doc2 ซึ่งมีเนื้อหาดังที่แสดงด้านล่าง

doc1 = {_id: '001', name: 'Geeta', age: 25, Designation: 'Programmer'} 
doc2 = {_id: '002', name: 'Zara Ali', age: 24, Designation: 'Manager'}

ต่อไปนี้เป็นตัวอย่างของการซิงโครไนซ์ฐานข้อมูลทั้งสองนี้โดยที่ฐานข้อมูลหนึ่งถูกเก็บไว้ใน PouchDB และอื่น ๆ จะถูกเก็บไว้ใน CouchDB โดยใช้ replicate.to() และ replicate.from() วิธีการ

//Requiring the package
var PouchDB = require('PouchDB');

//Creating local database object
var localDB = new PouchDB('local_database');

//Creating remote database object
var remoteDB = new PouchDB('http://localhost:5984/remote_database');

//Synchronising both databases
localDB.replicate.to(remoteDB);
remoteDB.replicate.from(localDB);
console.log("Databases synchronized successfully");

บันทึกรหัสด้านบนในไฟล์ที่มีชื่อ Synchronising_databases.js. เปิดพรอมต์คำสั่งและเรียกใช้ไฟล์ JavaScript โดยใช้node ดังแสดงด้านล่าง

C:\PouchDB_Examples >node Synchronising_databases.js

ซึ่งจะซิงโครไนซ์สองฐานข้อมูล remoteDB และ localDB และแสดงข้อความบนคอนโซลดังที่แสดงด้านล่าง

Databases synchronized successfully.

หลังจากซิงโครไนซ์ฐานข้อมูลทั้งสองแล้วให้ไปที่ไฟล์ http://127.0.0.1:5984/_utils/index.html และเลือกไฟล์ remote_database. คุณสามารถสังเกตได้ว่าเอกสารของฐานข้อมูลท้องถิ่น (003, 004, 005) ถูกคัดลอกในฐานข้อมูลนี้ดังที่แสดงด้านล่าง

ในทำนองเดียวกันหากคุณดึงเนื้อหาของไฟล์ local_database เก็บไว้ใน PouchDB คุณสามารถสังเกตได้ว่าเอกสารของฐานข้อมูลที่เก็บไว้ใน CouchDB ถูกคัดลอกที่นี่

[ 
   { 
      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-bf4619471ac346fdde46cfa8fbf3587f' },
      doc: { 
         name: 'Ram',
         age: 26,
         Designation: 'Programmer',
         _id: '003',
         _rev: '1-bf4619471ac346fdde46cfa8fbf3587f' 
      } 
   },
   { 
      id: '004',
      key: '004',
      value: { rev: '1-29b8f803958c994e3eb37912a45d869c' },
      doc: { 
         name: 'Robert',
         age: 27,
         Designation: 'Programmer',
         _id: '004',
         _rev: '1-29b8f803958c994e3eb37912a45d869c' 
      } 
   },
   { 
      id: '005',
      key: '005',
      value: { rev: '1-0eb89f71998ffa8430a640fdb081abd2' },
      doc: { 
         name: 'Rahim',
         age: 28,
         Designation: 'Programmer',
         _id: '005',
         _rev: '1-0eb89f71998ffa8430a640fdb081abd2' 
      } 
   } 
]

คุณสามารถเขียนโปรแกรมข้างต้นใหม่โดยใช้ไฟล์ sync() วิธีการจัดทำโดย PouchDB แทนที่จะเป็นสองวิธี replicate.to() และ replicate.from() ดังแสดงด้านล่าง

//Requiring the package
var PouchDB = require('PouchDB');

//Creating local database object
var localDB = new PouchDB('local');

//Creating remote database object
var remoteDB = new PouchDB('http://localhost:5984/remote_database');

//Synchronising Remote and local databases
localDB.sync(remoteDB, function(err, response) {
   if (err) {
      return console.log(err);
   } else {
      console.log(response);
   }
});

ในการรันโปรแกรมข้างต้นจะซิงโครไนซ์ฐานข้อมูลทั้งสองที่แสดงข้อความต่อไปนี้

{ 
   push: { 
      ok: true,
      start_time: Fri Mar 25 2016 15:54:37 GMT+0530 (India Standard Time),
      docs_read: 6,
      docs_written: 6,
      doc_write_failures: 0,
      errors: [],
      last_seq: 10,
      status: 'complete',
      end_time: Fri Mar 25 2016 15:54:37 GMT+0530 (India Standard Time) 
   },
   pull: { 
      ok: true,
      start_time: Fri Mar 25 2016 15:54:37 GMT+0530 (India Standard Time),
      docs_read: 0,
      docs_written: 0,
      doc_write_failures: 0,
      errors: [],
      last_seq: 2,
      status: 'complete',
      end_time: Fri Mar 25 2016 15:54:37 GMT+0530 (India Standard Time) 
   } 
}

ในบทนี้เราจะพูดถึงแนวคิดเช่นการบดอัดและการดึงข้อมูลจำนวนมากจาก PouchDB

การบดอัด

คุณสามารถลดขนาดของฐานข้อมูลโดยการลบข้อมูลที่ไม่ได้ใช้โดยใช้ compact()วิธี. คุณสามารถกระชับฐานข้อมูลในเครื่องและฐานข้อมูลระยะไกลโดยใช้วิธีนี้

ต่อไปนี้เป็นตัวอย่างที่สาธิตการใช้งานไฟล์ compact() วิธีการใน 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

คุณสามารถดึงชุดเอกสารจำนวนมากโดยใช้ไฟล์ bulkGet()วิธี. สำหรับวิธีนี้คุณต้องส่งชุดของ id และ _rev

ต่อไปนี้เป็นตัวอย่างที่สาธิตการใช้งานไฟล์ bulkGet() วิธีการใน 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);
   }
});