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