Javascript 使用couchDB的PockDB有限复制

Javascript 使用couchDB的PockDB有限复制,javascript,couchdb,progressive-web-apps,pouchdb,Javascript,Couchdb,Progressive Web Apps,Pouchdb,我正在尝试用最新的PockDB/couchDB可能性从PockDB同步到couchDB。 上游应为所有单据,下游仅为有限金额。在我的PWA(JavaScript WebApp)中,我有如下内容: pocket.sync('posts',window.remoteDB.url(){ 自动压缩:正确, 超时:10000, 跳过设置:false, 拉动:{ 限制:5//这不起作用 }, 推送:{} }); 此外,我还考虑过以某种方式将过滤复制纳入这个等式,但我完全没有得到文档。我不知道如何使用cou

我正在尝试用最新的PockDB/couchDB可能性从PockDB同步到couchDB。 上游应为所有单据,下游仅为有限金额。在我的PWA(JavaScript WebApp)中,我有如下内容:

pocket.sync('posts',window.remoteDB.url(){
自动压缩:正确,
超时:10000,
跳过设置:false,
拉动:{
限制:5//这不起作用
},
推送:{}
});
此外,我还考虑过以某种方式将过滤复制纳入这个等式,但我完全没有得到文档。我不知道如何使用counchDB过滤器来限制按时间戳排序的最新5个文档

这个问题如何解决

编辑-工作解决方案(js):

  • 直接将请求发布到couchDB的
    /databaseXYZ/\u find
    端点:
    {“选择器”:{“类型”:“post”},“排序”:[{“timestamp'2:“desc”}],“limit”:5}
    -->以获得项目编号5的时间戳值x
  • 将筛选器设计文档添加到couchDB:
    {“\u id”:“\u design/myfilters”,“filters”:{“newerThen”:“函数(doc,req){return doc.timestamp>=req.query.since;}”}
  • 然后执行通常的同步,但添加一个:
    backdb.sync(…localdb,…url,{…,pull:{filter:'myfilters/newerThen',query_参数:{since:x},push:{/*all*/}

  • 请指定确切的版本,因为“最新可能性”几乎每天都在更改。筛选的复制对文档密钥有效,而不是有限制。无法将复制限制为特定数量的文档(这样做实际上会破坏复制协议)。这让我想到:获取最新5个键的列表,获取最早的时间戳,并在下游过滤复制中使用它,因为时间戳>x。上游仍将是未过滤的。这给了用户一个按钮来同步所有键。这是否可行?是否有更好的解决方案?…确实可行。请指定确切的版本,如“最新可能性”几乎每天都在更改。筛选的复制工作在文档密钥上,而不是限制上。无法将复制限制为特定数量的文档(这样做实际上会破坏复制协议)。使我想到:获取最新5个键的列表,获取最早的时间戳,并在下游过滤复制中使用它,因为时间戳>x。上游仍将是未过滤的。这为用户提供了一个按钮来同步所有键。这是否可行?是否有更好的解决方案?…确实可行。