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