我正在为一个应用程序评估CouchBase,并试图弄清楚视图上的范围查询。我知道我可以为一个键,多个键或一个范围进行查看。我可以为多个范围进行获取吗?即我想检索视图键0-10,50-100,5238-81902的项目。我可能同时需要100个不同的范围,因此必须向数据库发出100个请求似乎需要很多开销。
答案 0 :(得分:2)
据我所知,在couchbase中,无法通过一个视图实现从多个范围获取值。可能会有(或将来会实现)Couchbase N1QL中的一些功能,但我没有使用它。
回答你的问题100个请求不会是一个很大的开销。 Couchbase安静快速,设计用于每秒处理大量操作。此外,如果您的视图设计正确,则不会重新计算"在每个查询。
还有另一种方式: 1.确定范围的最小值和最大值(根据您的示例,它将为0..81902) 2.查询视图将仅返回文档ID和范围所基于的值,而不包括结果中的所有文档。 3.在客户端根据您的范围过滤前一步骤的结果数组(0-10,50-100,5238-81902) 然后使用getMulti和数组中的文档ID。
我不了解您的数据结构,因此您可以尝试两种方式,测试它们并选择最适合您需求的方式。