- PouchDB 教程
- PouchDB - 首页
- PouchDB - 概述
- PouchDB - 环境配置
- PouchDB - 创建数据库
- PouchDB - 数据库信息
- PouchDB - 删除数据库
- PouchDB - 创建文档
- PouchDB - 读取文档
- PouchDB - 更新文档
- PouchDB - 删除文档
- PouchDB - 批量创建
- PouchDB - 批量获取
- PouchDB - 批量更新
- PouchDB - 批量删除
- PouchDB - 添加附件
- PouchDB - 获取附件
- PouchDB - 删除附件
- PouchDB - 复制
- PouchDB - 同步
- PouchDB - 其他
- PouchDB 有用资源
- PouchDB - 快速指南
- 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 package var PouchDB = require('PouchDB'); //Creating the database object var db = new PouchDB('my_database'); //Retrieving all the documents in PouchDB db.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 package var PouchDB = require('PouchDB'); //Creating the database object var db = new PouchDB('my_database'); //Preparing the document docs = [{_id : '001', _rev: '2-77f3a9974dd578d12f3f2a33aae64c8d', _deleted : true }, {_id : '002', _rev: '2-43966007568ce9567c96422195fcfa0d', _deleted : true }, {_id : '003', _rev: '2-6c5349652527f4f39583ff14f23cd677',_deleted : true }] //Deleting Documents db.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服务器中有一个名为my_database的数据库。然后,如果您使用URL http://127.0.0.1:5984/_utils/index.html验证CouchDB中的数据库列表,您将获得以下屏幕截图。
如果我们选择名为my_database的数据库,您可以看到它包含3个文档,如下面的屏幕截图所示。
以下是删除存储在CouchDB服务器中名为my_database的数据库中所有现有文档的示例。
//Requiring the package var PouchDB = require('PouchDB'); //Creating the database object var db = new PouchDB('https://127.0.0.1:5984/my_database'); //Preparing the document docs = [{_id : '001', _rev: '4-6bc8d9c7a60fed2ed1667ec0740c1f39', _deleted : true }, {_id : '002', _rev: '2-1aa24ce77d96bb9d2a0675cdf1e113e0', _deleted : true }, {_id : '003', _rev: '2-fa113149ba618eda77f73072974a2bc1',_deleted : true }] //Deleting Documents db.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