问题标签 [touchdb]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - 一起使用 TouchDB 和 FMDB 包装器时出现重复符号错误
在我的应用程序中,我使用TouchDB
. 我添加了TouchDB.framework
,一切正常。然后我不得不在同一个应用程序中使用 sqlite 数据库,并且由于我习惯使用FMDB
包装器,我将它添加到项目中。在构建时,我收到以下错误:
我猜该TouchDB
框架FMDatabase
也包含文件,但是 Headers 文件夹中缺少它。如何解决这个问题?
couchdb - Couchdb - 是否可以“复制”复制的文档
我正在设计一个系统,它将使用 CouchDB 和 TouchDB\CloudantSync 使用复制将数据库缓存在用户的智能手机上。现在假设我有 1000 个文档,每个文档都有一个 100Kb 的附件,我想通过删除一个文档来释放智能手机上的一些空间。
我希望在删除一些文档后,我可以从服务器再次复制它。这与删除不同,删除会给文档一个新的修订版本,并避免再次从服务器复制它(因为智能手机上已删除的文档是未删除文档的子文档)。
我显然可以对服务器文档进行冗余更新,但这效率低下......
有没有办法“取消同步”文档?
couchdb - 托管 CouchDB 提供商的定价计划没有意义
CouchDB 的圣杯是它的复制功能。使用 TouchDB、Cloudant-Sync 和 Couchbase-Lite,您甚至可以将数据库从\复制到用户的智能手机,因此即使存在连接问题,数据也将可用。
CouchDB 复制协议(可能在不同的框架\sdks 中实现略有不同)为每个已更改的文档发出 GET 请求。
Cloudant和Iris-Couch都提供基于数据库大小、轻量 http 请求数(GET、HEAD)和重量 http 请求数(PUT、POST、DELETE)的定价程序。这意味着为单个文档调用 GET 与调用 GET 到./_all_docs
从某种意义上说,对于这些定价程序,复制协议的效率似乎很低。例如,如果您的用户仅从服务器中提取文档,则使用它可能/_all_docs?include_docs=true
比运行标准复制更便宜,即使/_all_docs
请求使您下载未更改的文档......
我错过了什么吗?定价程序不应该考虑下载\上传的数据量而不是请求的数量吗?单个文档的 GET 请求不应该比调用/_all_docs
或查看便宜得多吗?是否可以调整复制协议,使其在带宽方面效率较低但便宜得多?
PS 我知道 Couchbase 是一个单独的项目,CouchDB 复制协议对它没有任何影响。Couchbase 还支持从\到客户端的复制(通过 Couchbase Lite)。就对服务器的请求数量而言,有什么方法可以比较这两种机制?
- - 编辑 - -
看起来/_all_docs
正在用于 Couchbase-Lite 复制算法,不是为了降低成本,而是为了优化流程:
https ://github.com/couchbase/couchbase-lite-ios/wiki/Replication-Algorithm
- 使用标准 API 可以实现上述批量获取优化的有限情况:第 1 代的修订(修订 ID 以“1-”开头)可以通过 _all_docs 批量获取,因为根据定义,它们没有修订历史。不幸的是 _all_docs 不能包含附件正文,因此如果它返回的文档的 JSON 表明它有附件,则必须单独获取这些附件。尽管如此,这种优化还是有很大帮助的,目前在 Couchbase Lite 中实现。
- 编辑 -
此问题正在 Couchbase 同步网关中处理,而不是作为 CouchDB 的一部分: https ://github.com/couchbase/sync_gateway/wiki/Bulk-GET
我想知道这是否会在 CouchDB 中实现。看起来按请求收费的服务提供商没有兴趣支持此功能......