Pouchdb-update-document
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'
}