如何真正删除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
我删除了一个具有特定 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()
。
不幸的是,没有插件可以让这个变得简单,但基本上你需要 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