PouchDB - 批次刪除



您可以使用bulkDocs()方法一次性刪除PouchDB中的一組文件。為此,您需要建立一個要刪除的文件陣列,每個文件都應包含_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的檔案中。開啟命令提示符,並使用node執行JavaScript檔案,如下所示。

C:\PouchDB_Examples >node Delete_All_Document.js

這將刪除本地儲存的名為my_database資料庫中存在的所有文件,並顯示以下訊息。

Documents Deleted Successfully

現在,如果您執行bulk_fetch.js程式,您可以在控制檯中看到一個空括號,表明資料庫為空,如下所示。

[]

從遠端資料庫刪除批次資料

您可以更新伺服器(CouchDB)上遠端儲存的資料庫中的所有文件。

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

示例

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

Deleting Batch from a Remote Database

如果我們選擇名為my_database的資料庫,您可以看到它包含3個文件,如下面的螢幕截圖所示。

Deleting Batch

以下是刪除儲存在CouchDB伺服器中名為my_database的資料庫中所有現有文件的示例。

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

//Creating the database object
var db = new PouchDB('https://: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的檔案中。開啟命令提示符,並使用node執行JavaScript檔案,如下所示。

C:\PouchDB_Examples >node Remote_Delete_AllDocuments.js

這將刪除儲存在CouchDB中名為my_database的資料庫中所有給定文件的內容,並顯示以下訊息。

Documents Deleted Successfully
廣告
© . All rights reserved.