Учебники

PouchDB — удаление вложения

Вы можете удалить вложение из PouchDB, используя метод removeAttachment () .

Синтаксис

Ниже приведен синтаксис метода removeAttachment () . Для этого метода мы должны передать идентификатор документа, идентификатор вложения и значение _rev. Этот метод также принимает дополнительную функцию обратного вызова.

db.removeAttachment ( docId, attachmentId, rev, [callback] );

пример

Предположим, что в PouchDB есть документ с идентификатором 001 , который содержит идентификатор, имя, возраст, обозначение сотрудника и вложение, как показано ниже.

{ 
   name: 'Raju',
   age: 23,
   designation: 'Designer',
   _attachments: { 
      'att_1.txt': { 
         content_type: 'text/plain',
         digest: 'md5-k7iFrf4NoInN9jSQT9WfcQ==',
         data: 'AA==' 
      } 
   },
   _id: '001',
   _rev: '2-cdec6c9f45ddbee7d456945654742d43' 
}

Ниже приведен пример удаления вложения этого документа 001, сохраненного в PouchDB, с использованием метода removeAttachment () .

//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 . Откройте командную строку и выполните файл 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 . Затем, если вы проверите список баз данных в CouchDB, используя URL-адрес http://127.0.0.1:5984/_utils/index.html, вы получите следующий снимок экрана.

Удаление вложения из удаленного документа

И если вы выберете базу данных с именем my_database , вы можете просмотреть ее содержимое, как показано ниже.

Удаление базы данных вложений

Предположим, в этом документе есть вложение, как показано ниже.

Удаление вложения

Ниже приведен пример удаления вышеупомянутого вложения документа 001, который существует в базе данных с именем my_database, которая хранится на сервере CouchDB.

//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 . Откройте командную строку и выполните файл JavaScript, используя узел, как показано ниже.

C:\PouchDB_Examples >node Remote_Delete_Attachment.js

Это удаляет существующее вложение и отображает следующее сообщение.

Attachment Deleted successfully

При повторном посещении документа вы можете заметить, что вложение было удалено, как показано на следующем снимке экрана.