PouchDB - Xóa tệp đính kèm

Bạn có thể xóa tệp đính kèm khỏi PouchDB bằng cách sử dụng removeAttachment() phương pháp.

Cú pháp

Sau đây là cú pháp của removeAttachment()phương pháp. Đối với phương thức này, chúng ta phải chuyển id tài liệu, id tệp đính kèm và giá trị _rev. Phương thức này cũng chấp nhận một hàm gọi lại tùy chọn.

db.removeAttachment ( docId, attachmentId, rev, [callback] );

Thí dụ

Giả sử có một tài liệu trong PouchDB với id 001, trong đó có id, tên, tuổi, chỉ định của nhân viên cùng với tệp đính kèm như hình dưới đây.

{ 
   name: 'Raju',
   age: 23,
   designation: 'Designer',
   _attachments: { 
      'att_1.txt': { 
         content_type: 'text/plain',
         digest: 'md5-k7iFrf4NoInN9jSQT9WfcQ==',
         data: 'AA==' 
      } 
   },
   _id: '001',
   _rev: '2-cdec6c9f45ddbee7d456945654742d43' 
}

Sau đây là một ví dụ về việc xóa phần đính kèm của tài liệu này 001 được lưu trữ trong PouchDB, sử dụng removeAttachment() phương pháp.

//Requiring the package
var PouchDB = require('PouchDB');

//Creating the database object
var db = new PouchDB('my');
db.removeAttachment('001', 'att_1.txt', '2-cdec6c9f45ddbee7d456945654742d43', 
   function(err, res) {
   if (err) {
      return console.log(err);
   } else {
      console.log(res+"Attachment Deleted successfully")
   }
});

Lưu đoạn mã trên vào một tệp có tên Remove_Attachment.js. Mở dấu nhắc lệnh và thực thi tệp JavaScript bằngnode như hình bên dưới.

C:\PouchDB_Examples >node Remove_Attachment.js

Thao tác này sẽ xóa phần đính kèm của tài liệu và hiển thị thông báo trên bảng điều khiển như hình dưới đây.

Attachment deleted successfully

Sau khi xóa, bạn có thể xác minh nội dung của tài liệu bằng cách thực hiện mã sau.

//Requiring the package
var PouchDB = require('PouchDB');

//Creating the database object
var db = new PouchDB('my_d');

//Reading the Document
db.get('001',{attachments: true}, function(err, doc) {
   if (err) {
      return console.log(err);
   } else {
      console.log(doc);
   }
});

Lưu mã này thành read.jsvà thực hiện nó. Khi thực thi, bạn sẽ nhận được nội dung của tài liệu sau khi xóa tệp đính kèm, như hình dưới đây.

{ 
   name: 'Raju',
   age: 23,
   designation: 'Designer',
   _id: '001',
   _rev: '3-da775487a6ed0495f2e49c543384f8e8' 
}

Xóa phần đính kèm khỏi tài liệu từ xa

Bạn có thể xóa phần đính kèm của tài liệu hiện có trong 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.

Và nếu bạn chọn cơ sở dữ liệu có tên my_database, bạn có thể xem nội dung của nó như hình dưới đây.

Giả sử có một tệp đính kèm trong tài liệu này như hình dưới đây.

Sau đây là một ví dụ về cách xóa tài liệu đính kèm được đề cập ở trên 001 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');

db.removeAttachment('001', 'att_1.txt', '2-049f1c4ffa54576ec0947b65e34de423', 
   function(err, res) { 
   if (err) { 
      return console.log(err); 
   } else { 
      console.log(res+"Attachment Deleted successfully") 
   } 
});

Lưu đoạn mã trên vào một tệp có tên Remote_Delete_Attachment.js. Mở dấu nhắc lệnh và thực thi tệp JavaScript bằngnode như hình bên dưới.

C:\PouchDB_Examples >node Remote_Delete_Attachment.js

Thao tác này sẽ xóa phần đính kèm hiện có và hiển thị thông báo sau.

Attachment Deleted successfully

Nếu bạn truy cập lại tài liệu, bạn có thể nhận thấy rằng tệp đính kèm đã bị xóa như được hiển thị trong ảnh chụp màn hình sau.