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