加入收藏 | 设为首页 | 会员中心 | 我要投稿 济南站长网 (https://www.0531zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

couchdb – PouchDB:多个远程数据库,单个本地数据库(花式复制)

发布时间:2021-03-15 18:34:20 所属栏目:MsSql教程 来源:网络整理
导读:我有一个管理用户的pouchdb应用程序. 用户拥有一个本地pouchDB实例,可以使用单个couchDB数据库进行复制.很简单. 这是事情变得有点复杂的地方.我在设计中引入了“群体”的概念.组将是不同的couchDB数据库,但在本地,它们应该是用户数据库的一部分. 我在pouch

我有一个管理用户的pouchdb应用程序.

用户拥有一个本地pouchDB实例,可以使用单个couchDB数据库进行复制.很简单.

这是事情变得有点复杂的地方.我在设计中引入了“群体”的概念.组将是不同的couchDB数据库,但在本地,它们应该是用户数据库的一部分.

我在pouchDB网站上阅读了一些关于“花哨复制”的内容,这似乎是我追求的解决方案.

现在,我的问题是,我该怎么做?更具体地说,如何从多个远程数据库复制到单个本地数据库?一些代码示例将是超级的.

从下面的图表中,您将注意到我需要根据用户所在的组动态地添加数据库.对我的设计的批评也将受到赞赏.
谢谢!

流量应该是这样的:

>从他/她的数据库中检索所有用户文档到localUserDB
> var groupDB = new PouchDB(‘remote-group-url’);
groupDB.replicate.to(localUserDB);
(多个pouchdb实例0_0的任何性能问题?)
>在本地,当用户进行与特定组相关的更改时,我们确定相应的数据库并通过执行以下操作进行复制:
localUserDB.replicate.to(groupDB)(我是否需要过滤复制?)

编辑:诺兰建议我调查couchDB“角色”系统来解决我的问题.一旦我搞清楚,我会在这里发布.

解决方法

从许多远程数据库复制到本地数据库:
remoteDB1.replicate.to(localDB);
remoteDB2.replicate.to(localDB);
remoteDB3.replicate.to(localDB);
// etc.

然后从本地数据库到应该接收更改的远程数据库进行过滤复制:

localDB.replicate.to(remoteDB1,{
  filter: function (doc) {
    return doc.shouldBeReplicated;
  }
});

为何过滤复制?因为您的本地数据库包含来自许多源的文档,并且您不希望将所有内容复制回一个远程数据库.

为什么过滤功能?由于您是从本地数据库复制的,因此使用设计文档,视图等无法获得性能提升.只需传入过滤函数;它更简单.

(编辑:济南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读