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

How to really delete a document in pouchDb?

我删除了一个具有特定 ID 的文档,现在我想创建一个具有相同 ID 的新文档。我无法使用不同的 ID 创建它,因为我使用我的 ID "to store object informations",顺便说一句,如果这是好的做法,请使用 idk。例如我的 ID 是这样的:

一个存放项目的文件:p0

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

存储项目 'p0' 的第二个工人的文档:p0/w1

等..

因此,例如,我没有向工作文档添加 属性 'projectId',而是使用其 id 来存储此信息,这就是我的意思是 "using ids to store object informations"。然后,当我需要来自项目 'p0' 的工作人员时,我请求 pouchDb 以 'p0' 开头的所有文档 ID。然后我过滤结果以仅获取与工作人员 ID 正则表达式 ( p[0-9]+\/w[0-9]+ ) 匹配的 ID,然后我对这些 ID 执行第二个请求,包括文档。

所以我误删除了我的文档'p0',我想重新创建它,怎么办?我处理文档的方法是否正确?

假设您不启用自动压缩或调用 compact()

,您始终可以恢复 PouchDB 中的任何文档修订版

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

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

然后修订 ID 为 '1-z''2-y''3-x',然后您可以通过 get()ing 获取它们,例如{rev: '1-x'}

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