开发手册 欢迎您!
软件开发者资料库

PouchDB - 删除批处理

PouchDB删除批处理 - 从简单和简单的步骤学习PouchDB,从基本到高级概念,包括概述,环境,创建,信息,删除数据库,创建,读取,更新,删除文档,创建,获取,更新,删除批处理,添加,检索,删除附件,复制,同步,杂项。

您可以使用 bulkDocs()方法一次删除PouchDB中的文档数组.为此,您需要创建一个要删除的文档数组,其中每个文档应包含 _id _rev .除此之外,您还必须添加另一个键值对 _deleted:true .

假设存储了名为 my_database 的数据库PouchDB中的本地文档包含3个文档,即doc1,doc2,doc3,其中包含以下内容.

doc1 = {_id: '001', name: 'Ram', age: 23, Designation: 'Programmer'}doc2 = {_id: '002', name: 'Robert', age: 24, Designation: 'Programmer'}doc3 = {_id: '003', name: 'Rahim', age: 25, Designation: 'Programmer'}

并说,我们必须删除所有这三个文件.然后,首先你需要得到他们的 _rev 值.因此,使用以下代码获取这些文档的内容.

//Requiring the packagevar PouchDB = require('PouchDB');//Creating the database objectvar db = new PouchDB('my_database');//Retrieving all the documents in PouchDBdb.allDocs({include_docs: true},function(err, docs) {   if (err) {      return console.log(err);   } else {      console.log(docs.rows);   }});

将上述代码保存为 bulk_fetch.js .执行上述程序会为您提供数据库中文档的_id和_rev值,如下所示.

[    {       id: '001',      key: '001',      value: { rev: '1-1604b0c3ff69dc1e261265fd60808404' }    },   {       id: '002',      key: '002',      value: { rev: '1-b5e49db7e984841bf12a13e3ee548125' }    },   {       id: '003',      key: '003',      value: { rev: '1-a7b342786ecc707aa91f3b321a177b51' }    } ]

现在,您可以使用各自的 _id _rev 值删除文档,如下所示.

//Requiring the packagevar PouchDB = require('PouchDB');//Creating the database objectvar db = new PouchDB('my_database');//Preparing the documentdocs = [{_id : '001', _rev: '2-77f3a9974dd578d12f3f2a33aae64c8d', _deleted : true },      {_id : '002', _rev: '2-43966007568ce9567c96422195fcfa0d', _deleted : true },       {_id : '003', _rev: '2-6c5349652527f4f39583ff14f23cd677',_deleted : true }]//Deleting Documentsdb.bulkDocs(docs, function(err, response) {   if (err) {      return console.log(err);   } else {      console.log(response+"Documents deleted Successfully");   }});

将上述代码保存在名为 Delete_All_Document.js 的文件中.打开命令提示符并使用node执行JavaScript文件,如下所示.

C:\PouchDB_Examples >node Delete_All_Document.js

这将删除存储在本地存储的名为 my_database 的数据库中的所有文档,并显示以下消息.

Documents Deleted Successfully

现在,如果执行 bulk_fetch.js 程序,你可以在控制台上观察一个空括号,表明数据库是空的,如下所示.

[]

从远程数据库中删除批处理

您可以更新远程存储在服务器上的数据库中的所有文档(CouchDB) ).

为此,您需要将路径传递给CouchDB中的数据库,而不是数据库名称,CouchDB中包含要读取的文档.

示例

假设CouchDB服务器中有一个名为 my_database 的数据库.然后,如果您使用URL http://127.0.0.1:5984/_utils/index.html 验证CouchDB中的数据库列表,您将获得以下屏幕截图.

Deleting Batch from a Remote Database

如果我们选择名为 my_database ,您可以观察到它包含3个文档,如以下屏幕截图所示.

Deleting Batch

以下是删除存储在CouchDB服务器中名为 my_database 的数据库中存在的所有文档的示例.

//Requiring the packagevar PouchDB = require('PouchDB');//Creating the database objectvar db = new PouchDB('http://localhost:5984/my_database');//Preparing the documentdocs = [{_id : '001', _rev: '4-6bc8d9c7a60fed2ed1667ec0740c1f39', _deleted : true },      {_id : '002', _rev: '2-1aa24ce77d96bb9d2a0675cdf1e113e0', _deleted : true },      {_id : '003', _rev: '2-fa113149ba618eda77f73072974a2bc1',_deleted : true }]//Deleting Documentsdb.bulkDocs(docs, function(err, response) {   if (err) {      return console.log(err);   } else {      console.log("Documents deleted Successfully");   }});

将上述代码保存在名为 Remote_delete_AllDocuments.js 的文件中.打开命令提示符并使用node执行JavaScript文件,如下所示.

C:\PouchDB_Examples >node Remote_Delete_AllDocuments.js

这将删除存储在CouchDB中的名为 my_database 的数据库中存在的所有给定文档的内容,并显示以下消息.

Documents Deleted Successfully