我正在考虑使用PouchDB作为自动更新用户在论文中提交的评论的解决方案。PouchDB作为不同收藏的真实实时数据工具
它应该模仿订阅/发布服务的行为。每当有人在其客户端提交评论时,其他客户端上的评论列表应自动更新。
这是可能的使用PouchDB作为入门指南中描述:
var db = new PouchDB('paper');
var remoteCouch = 'http://user:[email protected]/paper';
function sync() {
var opts = {live: true};
db.replicate.to(remoteCouch, opts, syncError);
db.replicate.from(remoteCouch, opts, syncError);
}
该应用程序拥有不同的文件,每一个都有自己的意见。当使用PouchDB我的发布/订阅服务,我有以下问题:
是否使用PouchDB这样一个好主意?
如果我只想同步用户正在处理的当前纸张的注释,我应该为每个纸张创建一个新的数据库吗? (这也意味着我将失去查询所有用户对来自单个数据库的所有论文的评论的可能性)
有没有办法只同步数据库的一部分?这样,即使是不同的论文,我仍然可以使用数据库来保存所有的评论。
如果我将使用验证函数来限制对论文的评论(阅读评论不需要限制),是否可以使用PouchDB.replicate中的''''filter'''选项source,target,[options])'''方法来有选择地过滤数据库的哪些部分被同步? – arnoutaertgeerts 2014-09-24 06:03:29
当然,过滤器函数可以让你复制数据库的任何子集。我只是指出,如果你的担心是安全的,那么过滤器函数将不会保护数据库免受某人阅读他们不应该访问的数据。 – nlawson 2014-09-24 13:02:28
我正在使用PouchDB在AngularJS中编写同步指令。每当我的数据库的某个对象在某处发生更改时,它就会被更新。为此,我使用'''$ scope。$ watch'''。我现在唯一的问题是,当一个对象改变并保存到数据库时,'_rev'''字段也会改变,导致无限更新循环:)你有什么想法如何解决这个问题? – arnoutaertgeerts 2014-09-24 14:06:54