PouchDB - 更新文件



無論何時,我們在 PouchDB 中建立文件,都會生成一個新的欄位_rev,它被稱為修訂標記_rev的值是一個唯一的隨機數,每次我們對文件進行更改時,_rev的值都會發生變化。

您可以使用(_rev)更新 PouchDB 中的現有文件。為此,首先檢索要更新的文件的_rev值。現在,將要更新的內容與檢索到的_rev值一起放入新文件中,最後使用put()方法將此文件插入 PouchDB。

示例

假設我們在 PouchDB 中有一個 id 為001的文件,其中包含一個人的詳細資訊。為了更新此文件,我們應該擁有其修訂版本號。因此,要檢索文件的內容,使用以下程式碼。

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

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

//Reading the contents of a Document
db.get('001', function(err, doc) {
   if (err) {
      return console.log(err);
   } else {
      console.log(doc);
   }
});

執行以上程式碼後,您將收到以下輸出。

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

現在,使用_rev,您可以將鍵“age”的值更新為 26,如下面的程式碼所示。

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

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

//Preparing the document for update
doc = {
   age: 26,
   _rev: '3-552920d1ca372986fad7b996ce365f5d',
   }

//Inserting Document
db.put(doc);

//Reading the contents of a Document
db.get('001', function(err, doc) {
   if (err) {
      return console.log(err);
   } else {
      console.log(doc);
   }
});

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

C:\Pouch_Examples>node Update_Document.js

這將更新本地儲存的名為my_database的資料庫中存在的給定文件的內容。控制檯會顯示以下訊息。

{ 
   name: 'Raju',
   age: 26,
   designation: 'Designer',
   _id: '001',
   _rev: '2-61b523ccdc4e41a8435bdffbb057a7a5' 
}

更新遠端資料庫中的文件

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

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

示例

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

Updating a Document in a Remote Database

透過點選名為my_database的資料庫,您可以看到以下螢幕截圖。在這裡,您可以觀察到此資料庫包含一個 id 為001的文件。

Updating Database

以下是如何更新存在於名為my_database的資料庫(儲存在 CouchDB 伺服器中)中且 id 為“001”的文件的年齡的示例。

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

//Creating the database object
var db = new PouchDB('https://:5984/my_database');

//Preparing the document for update
doc = {
   age: 26,
   _rev: '3-552920d1ca372986fad7b996ce365f5d',
   }

//Inserting Document
db.put(doc);

//Reading the contents of a Document
db.get('001', function(err, doc) {
   if (err) {
      return console.log(err);
   } else {
      console.log(doc);
   }
});   

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

C:\PouchDB_Examples >node Remote_Update_Document.js

這將更新儲存在 CouchDB 中的名為my_database的資料庫中存在的給定文件的內容。控制檯會顯示以下訊息。

{
   _id: '001',
   _rev: '2-b9640bffbce582c94308905eed8bb545',
   name: 'Raju',
   age: 26,
   designation: 'Designer' 
}
廣告