PouchDB - อัปเดตเอกสาร
เมื่อใดก็ตามที่เราสร้างเอกสารใน 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'
}