Cloudant CDTDatastore 仅拉取数据库的一部分

Cloudant CDTDatastore to pull only part of the database

我们使用 Cloudant 作为我们应用程序的远程数据库。该数据库包含应用程序的每个用户的文档。当应用程序启动时,我们需要查询数据库以查找属于某个用户的所有文档。我们发现 CDTDatastore API 只允许拉取整个数据库并将其存储在应用程序中,然后在本地副本中执行查询。初始拉取到本地数据存储大约需要 10 秒,我想添加更多用户时会花费更长的时间。

有没有办法只将远程数据库的一部分保存到本地数据存储?或者,我们是否为我们的应用程序使用了错误的服务?

您可以使用服务器端replication filter function;您需要将有关过滤器的信息添加到拉取复制器。但是,复制在使用该功能时会影响性能。

话虽这么说,一种常见的模式是每个用户使用一个数据库,但是这有其他权衡取舍,您应该继续阅读。有一些关于每个用户一个数据库模式 here 的信息。