PouchDB - 在本地启动,稍后复制
PouchDB - start local, replicate later
如果我们始终先在本地创建和填充 PouchDB 数据库,然后稍后 sync/authenticate 使用像 Cloudant 这样的集中式 CouchDB 服务,是否会产生任何重大问题?
考虑这个简化的场景:
- 您正在构建酒店搜索或爱彼迎等住宿预订服务
- 您希望人们能够 favourite/heart 属性而无需创建帐户,并将使用 PouchDB 来存储此列表
- 即这个想法是为了不让他们在非绝对必要时创建一个帐户来打断他们的流程
- 如果用户希望选择加入,他们可以稍后创建一个帐户并接收 "server side" 数据库的凭据以与
同步
在第 3 步时,一旦我创建了每个用户的 CouchDB 数据库服务器端并分配了凭据以传回浏览器以供 sync/replication,我如何才能 link与已经创建的 PouchDB 数据有关吗?即
- PouchDB 能否以某种方式重用现有数据库进行同步,从而将所有现有数据推送到托管的 CouchDB 数据库,或者..
- 我们是否需要创建一个新的 PouchDB 数据库,然后将所有文档从现有的(非复制的)复制到这个新的(复制的)数据库,然后删除现有的?
在我们开始支持非复制 PouchDB 的第一阶段之前,我想确保我没有把自己画到任何我没有想到的角落。
这取决于您要从服务器同步的数据类型,但一般来说,您可以将预先存在的数据库复制到包含现有文档的新数据库中,只要这些文档 ID 不存在即可冲突。
因此,星级评分模型的最佳想法可能是在客户端创建具有 'star_<timestamp>'
之类 ID 的文档,以确保它们不会与任何内容发生冲突。然后您可以使用 map/reduce 函数聚合它们。
如果我们始终先在本地创建和填充 PouchDB 数据库,然后稍后 sync/authenticate 使用像 Cloudant 这样的集中式 CouchDB 服务,是否会产生任何重大问题?
考虑这个简化的场景:
- 您正在构建酒店搜索或爱彼迎等住宿预订服务
- 您希望人们能够 favourite/heart 属性而无需创建帐户,并将使用 PouchDB 来存储此列表
- 即这个想法是为了不让他们在非绝对必要时创建一个帐户来打断他们的流程
- 如果用户希望选择加入,他们可以稍后创建一个帐户并接收 "server side" 数据库的凭据以与 同步
在第 3 步时,一旦我创建了每个用户的 CouchDB 数据库服务器端并分配了凭据以传回浏览器以供 sync/replication,我如何才能 link与已经创建的 PouchDB 数据有关吗?即
- PouchDB 能否以某种方式重用现有数据库进行同步,从而将所有现有数据推送到托管的 CouchDB 数据库,或者..
- 我们是否需要创建一个新的 PouchDB 数据库,然后将所有文档从现有的(非复制的)复制到这个新的(复制的)数据库,然后删除现有的?
在我们开始支持非复制 PouchDB 的第一阶段之前,我想确保我没有把自己画到任何我没有想到的角落。
这取决于您要从服务器同步的数据类型,但一般来说,您可以将预先存在的数据库复制到包含现有文档的新数据库中,只要这些文档 ID 不存在即可冲突。
因此,星级评分模型的最佳想法可能是在客户端创建具有 'star_<timestamp>'
之类 ID 的文档,以确保它们不会与任何内容发生冲突。然后您可以使用 map/reduce 函数聚合它们。