Pouchdb-deleting-attachment

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

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

リモートドキュメントからの添付ファイルの削除

また、 my_database という名前のデータベースを選択すると、次のようにその内容を表示できます。

添付データベースの削除

以下に示すように、このドキュメントに添付ファイルがあるとします。

添付ファイルの削除

以下は、CouchDBサーバーに保存されている my_database という名前のデータベースに存在するドキュメント 001 の上記の添付ファイルを削除する例です。

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

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

もう一度ドキュメントにアクセスすると、次のスクリーンショットに示すように、添付ファイルが削除されたことがわかります。

添付ファイルの削除