Pouchdb-update-document

提供:Dev Guides
移動先:案内検索

PouchDB-ドキュメントの更新

PouchDBでドキュメントを作成するたびに、新しいフィールド _rev が生成されます。これは revision marker と呼ばれます。 _rev の値は一意の乱数であり、ドキュメントに変更を加えるたびに _rev の値が変更されます。

(_ rev)*を使用して、PouchDBの既存のドキュメントを更新できます。 そのためには、まず更新するドキュメントの *_rev 値を取得します。 ここで、更新されるコンテンツを取得した _rev 値とともに新しいドキュメントに配置し、最後に* put()*メソッドを使用してこのドキュメントをPouchDBに挿入します。

個人の詳細を含むID 001 のドキュメントがPouchDBにあるとします。 このドキュメントを更新するには、そのリビジョン番号が必要です。 したがって、ドキュメントのコンテンツを取得するには、次のコードを使用します。

//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/indexl を使用してCouchDB内のデータベースのリストを確認すると、次のスクリーンショットが表示されます。

リモートデータベース内のドキュメントの更新

*my_database* という名前のデータベースをクリックすると、次のスクリーンショットを見ることができます。 ここで、このデータベースにID *001* のドキュメントが含まれていることがわかります。

データベースの更新

以下は、CouchDBサーバーに保存されている my_database という名前のデータベースに存在するidが「 001 」のドキュメントの経過時間を更新する例です。

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

//Creating the database object
var db = new PouchDB('http://localhost: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'
}