PouchDB - Xóa hàng loạt

Bạn có thể xóa một loạt tài liệu trong PouchDB cùng một lúc bằng cách sử dụng bulkDocs()phương pháp. Để làm như vậy, bạn cần tạo một mảng tài liệu sẽ bị xóa ở đâu, mỗi tài liệu phải chứa_id_rev. Ngoài những thứ này, bạn phải thêm một cặp khóa-giá trị khác_deleted: true.

Giả sử cơ sở dữ liệu có tên my_database được lưu trữ cục bộ trong PouchDB chứa 3 tài liệu là doc1, doc2, doc3 với các nội dung sau.

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

Và nói rằng, chúng tôi phải xóa tất cả ba tài liệu. Sau đó, trước hết bạn cần lấy_revcác giá trị. Do đó, hãy tìm nạp nội dung của các tài liệu này bằng đoạn mã sau.

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

Lưu mã trên dưới dạng bulk_fetch.js. Thực hiện chương trình trên sẽ cung cấp cho bạn các giá trị _id và _rev của các tài liệu trong cơ sở dữ liệu như hình dưới đây.

[ 
   { 
      id: '001',
      key: '001',
      value: { rev: '1-1604b0c3ff69dc1e261265fd60808404' } 
   },
   { 
      id: '002',
      key: '002',
      value: { rev: '1-b5e49db7e984841bf12a13e3ee548125' } 
   },
   { 
      id: '003',
      key: '003',
      value: { rev: '1-a7b342786ecc707aa91f3b321a177b51' } 
   } 
]

Bây giờ, bạn có thể xóa các tài liệu bằng cách sử dụng _id_rev giá trị như hình dưới đây.

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

Lưu đoạn mã trên vào một tệp có tên Delete_All_Document.js. Mở dấu nhắc lệnh và thực thi tệp JavaScript bằng cách sử dụng nút như hình dưới đây.

C:\PouchDB_Examples >node Delete_All_Document.js

Thao tác này sẽ xóa tất cả các tài liệu tồn tại trong cơ sở dữ liệu có tên my_database được lưu trữ cục bộ, hiển thị thông báo sau.

Documents Deleted Successfully

Bây giờ, nếu bạn thực hiện bulk_fetch.js chương trình, bạn có thể quan sát một dấu ngoặc nhọn trên bảng điều khiển cho biết rằng cơ sở dữ liệu đang trống, như hình dưới đây.

[]

Xóa hàng loạt khỏi cơ sở dữ liệu từ xa

Bạn có thể cập nhật tất cả các tài liệu từ cơ sở dữ liệu được lưu trữ từ xa trên máy chủ (CouchDB).

Để làm như vậy, thay vì tên cơ sở dữ liệu, bạn cần phải chuyển đường dẫn đến cơ sở dữ liệu trong CouchDB, chứa tài liệu sẽ được đọc.

Thí dụ

Giả sử có một cơ sở dữ liệu có tên my_databasetrong máy chủ CouchDB. Sau đó, nếu bạn xác minh danh sách cơ sở dữ liệu trong CouchDB bằng URLhttp://127.0.0.1:5984/_utils/index.html bạn sẽ nhận được ảnh chụp màn hình sau.

Nếu chúng tôi chọn cơ sở dữ liệu có tên my_database, bạn có thể quan sát thấy nó chứa 3 tài liệu như trong ảnh chụp màn hình sau.

Sau đây là một ví dụ về việc xóa tất cả các tài liệu tồn tại trong cơ sở dữ liệu có tên my_database được lưu trữ trong máy chủ 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");
   }
});

Lưu đoạn mã trên vào một tệp có tên Remote_delete_AllDocuments.js. Mở dấu nhắc lệnh và thực thi tệp JavaScript bằng cách sử dụng nút như hình dưới đây.

C:\PouchDB_Examples >node Remote_Delete_AllDocuments.js

Thao tác này sẽ xóa nội dung của tất cả tài liệu nhất định tồn tại trong cơ sở dữ liệu có tên my_database được lưu trữ trong CouchDB và hiển thị thông báo sau.

Documents Deleted Successfully