PouchDB - ลบ Batch

คุณสามารถลบอาร์เรย์ของเอกสารใน 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