PouchDB compact()调用

tup*_*tup 3 pouchdb

我从couchdb(couchappy.com)复制了pouchDB.复制不是实时的.我只是在某些条件下运行它(例如,应用程序的加载/初始化,最终用户更改某些选项等).

我删除了couchdb中的一些文档,这些文档在pouchdb中显示为"已删除".然后我想压缩我的pouchdb:db.compact()调用.但这个电话似乎对删除的文档没什么作用.

请注意,我已经压缩了counchdb.

我正在使用pouchdb 2.2.0.

你们其中任何人都知道什么是compact()调用实际上在pouchdb上做什么?另外,如何摆脱"删除"的文档?

干杯,阿尔贝托

nla*_*son 5

CouchDB和PouchDB始终对已删除的文档进行"墓碑"修订,因为在复制过程中会出现质朴的事情.所以那些被删除的文档在压缩过程中不会消失; 压缩只是摆脱了比最新版本更旧的版本.

还有一个"清除"命令可以真正消除文档及其历史,但它非常激烈,大多数时候你不想这样做,除非你必须().此外,PouchDB尚未支持它,尽管它正在进行中.

如果您只是担心文档占用空间而不是简单地调用pouch.remove(),您可以:

pouch.get('mydoc').then(function (doc) {
  var deletedDoc = {
    _id      : doc._id,
    _rev     : doc._rev,
    _deleted : true
  };
  return pouch.put(doc);
}).then(function (res) {
  // etc.
}).catch(function (err) {
  // etc.
};
Run Code Online (Sandbox Code Playgroud)