PouchDB - 刪除附件



您可以使用 **removeAttachment()** 方法從 PouchDB 中刪除附件。

語法

以下是 **removeAttachment()** 方法的語法。對於此方法,我們必須傳遞文件 ID、附件 ID 和 _rev 值。此方法還接受一個可選的回撥函式。

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

示例

假設 PouchDB 中有一個 ID 為 **001** 的文件,其中包含員工的 ID、姓名、年齡、職位以及附件,如下所示。

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

以下是如何使用 **removeAttachment()** 方法刪除儲存在 PouchDB 中的此文件 **001** 的附件的示例。

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

將以上程式碼儲存在名為 **Remove_Attachment.js** 的檔案中。開啟命令提示符並使用 **node** 執行 JavaScript 檔案,如下所示。

C:\PouchDB_Examples >node Remove_Attachment.js

這將刪除文件的附件並在控制檯上顯示一條訊息,如下所示。

Attachment deleted successfully

刪除後,您可以透過執行以下程式碼來驗證文件的內容。

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

將此程式碼另存為 **read.js** 並執行它。執行後,您將獲得刪除附件後文檔的內容,如下所示。

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

從遠端文件中刪除附件

您可以刪除資料庫中已存在且遠端儲存在伺服器(CouchDB)上的文件的附件。

為此,您需要傳遞 CouchDB 中包含要讀取的文件的資料庫的路徑,而不是資料庫名稱。

示例

假設 CouchDB 伺服器中有一個名為 **my_database** 的資料庫。然後,如果您使用 URL **http://127.0.0.1:5984/_utils/index.html** 驗證 CouchDB 中的資料庫列表,您將獲得以下螢幕截圖。

Removing Attachment from a Remote Document

如果您選擇名為 **my_database** 的資料庫,則可以檢視其內容,如下所示。

Removing Attachment Database

假設此文件中有一個附件,如下所示。

Removing Attachment

以下是如何刪除上述文件 **001** 的附件的示例,該文件存在於名為 **my_database** 的資料庫中,該資料庫儲存在 CouchDB 伺服器中。

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

//Creating the database object 
var db = new PouchDB('https://: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") 
   } 
});

將以上程式碼儲存在名為 **Remote_Delete_Attachment.js** 的檔案中。開啟命令提示符並使用 **node** 執行 JavaScript 檔案,如下所示。

C:\PouchDB_Examples >node Remote_Delete_Attachment.js

這將刪除現有附件並顯示以下訊息。

Attachment Deleted successfully

如果您再次訪問該文件,您會注意到附件已被刪除,如下面的螢幕截圖所示。

Attachment Deleted
廣告