在CouchDB View Map函数中使用'limit'参数

tar*_*riq 6 couchdb mapreduce

我知道通过REST API,可以指定'limit'参数(例如?limit = 5),以限制从CouchDB中给定视图返回的结果数.

我的问题是在视图中的地图功能本身内是否有办法做到这一点......?

Sam*_*bee 5

你的具体问题的答案是"不".

map函数应用于数据库中的每个文档,reduce函数(如果已定义)将应用于每个reduce结果.想想预先计算.

您在URL中提供的查询参数将应用于MapReduce函数构建的B + Tree.例如,如果您说?limit=5那么树中最左边的五个叶子将用作结果.或者如果你说?limit=5&descending=true那么树中最右边的五个叶子被用作结果.

但是,您?limit=5在Map函数中执行的操作可能会以不同的方式完成.例如,您的应用程序可以在文档中包含一些内容,使其有条件地包含在结果中.或者强制只标记五个文档在索引中,尽管这很麻烦,并且根据数据库的大小,成本很高.

干杯.