如何真正删除pouchDb中的文档?

时间:2015-05-18 14:56:58

标签: javascript pouchdb

我删除了一个具有特定ID的文档,现在我想创建一个具有相同ID的新文档。我无法使用不同的ID创建它,因为我使用我的ID"存储对象信息",如果它是一个好的做法,就像idk一样。例如,我的ID看起来像这样:

存储项目的文档:p0

存储项目工人的文件' p0':p0/w0

存储项目第二名工人的文件' p0':p0/w1

等。

例如,不是添加属性' projectId'对于一个工人文档,我使用它的id 来存储这些信息,这就是我所说的"使用id来存储对象信息"。然后,当我需要来自项目' p0'的工作人员时,我请求pouchDb以' p0'开头的所有文件ID。然后我过滤我的结果只得到与工作者ID正则表达式{p[0-9]+\/w[0-9]+)匹配的ID,并且我对这些ID执行第二次请求,包括docs。

所以我误删了我的文件' p0'我想再创一次,该怎么办?我的方法是否正确处理我的文档?

1 个答案:

答案 0 :(得分:2)

您可以随时恢复PouchDB中的任何文档修订,假设您未启用自动压缩或致电compact()

不幸的是没有插件可以让这个变得简单,但基本上你需要get()带有选项{revs: true, open_revs: 'all'}的文档,然后你得到一个名为_revisions的对象描述整个文档历史记录,从中可以恢复丢失的修订版本。例如。如果对象是:

{_revisions: {start: 3, ids: ['x', 'y', 'z']}}

然后修订ID为'1-z''2-y''3-x',然后您可以get()获取修订ID。 {rev: '1-x'}

这里有更长的解释:http://garmoncheg.blogspot.com/2013/11/couchdb-restoring-deletedupdated.html