【发布时间】:2014-03-25 12:52:28
【问题描述】:
我正在评估 CouchBase 的应用程序,并试图找出有关视图范围查询的一些信息。我知道我可以对单个键、多个键或范围进行视图获取。我可以获取多个范围吗?即我想用视图键 0-10、50-100、5238-81902 检索项目。我可能同时需要 100 个不同的范围,因此必须向数据库发出 100 个请求似乎开销很大。
【问题讨论】:
标签: database couchbase couchbase-view
我正在评估 CouchBase 的应用程序,并试图找出有关视图范围查询的一些信息。我知道我可以对单个键、多个键或范围进行视图获取。我可以获取多个范围吗?即我想用视图键 0-10、50-100、5238-81902 检索项目。我可能同时需要 100 个不同的范围,因此必须向数据库发出 100 个请求似乎开销很大。
【问题讨论】:
标签: database couchbase couchbase-view
据我所知,在 couchbase 中,没有办法通过一个视图来实现从多个范围中获取值。 Couchbase N1QL 中可能有(或将来会实现)某些功能,但我没有使用它。
回答您的问题 100 个请求不会是很大的开销。 Couchbase 安静快速,旨在每秒处理大量操作。此外,如果您的视图设计正确,则不会在每次查询时“重新计算”。
还有另一种方式: 1.确定您的范围的最小值和最大值(根据您的示例,它将是 0..81902) 2. 仅返回文档 ID 和范围所基于的值的查询视图,而不包括结果中的所有文档。 3.根据您的范围(0-10、50-100、5238-81902)在客户端过滤上一步的结果数组 然后将 getMulti 与留在数组中的文档 ID 一起使用。
我不知道您的数据结构,因此您可以尝试两种方法,测试它们并选择最适合您需求的方法。
【讨论】: