Mapreduce CouchDB returns";“错误”;总行数

Mapreduce CouchDB returns";“错误”;总行数,mapreduce,couchdb,Mapreduce,Couchdb,我的CouchDB里有5680份文件 我把它简化为: function(doc) { if (doc.address.country && doc.cats) { for (i = 0; i < doc.cats.length; i++) { emit([doc.address.country, doc.cats[i].id], doc); } } } 总行数是我的完整数据集,而不仅仅是与我的查询匹配的数据集。是否有办法

我的CouchDB里有5680份文件

我把它简化为:

function(doc) {
  if (doc.address.country && doc.cats) {
     for (i = 0; i < doc.cats.length; i++) { 
       emit([doc.address.country, doc.cats[i].id], doc);
     }    
  }
}
总行数是我的完整数据集,而不仅仅是与我的查询匹配的数据集。是否有办法查看结果中的匹配行

我希望避免为了添加reduce函数而重复map代码。此外,我想阻止两个http请求只是为了这些信息

对我来说,这些信息将有助于实现分页之类的功能

我读过:

但它们不是在我的数据行的有限子集上分页

正如我发现的,简单地从总行中减去偏移量是不可行的(当然)

如何在响应中获得正确的总行数,或者用例中的最佳实践是什么


谢谢

total_rows值是视图中的总行数。如果视图显示数据库中的所有行,则该值相同。这不是该查询中返回的行数,这是正确的。查询中返回的行数不作为单独的值显示,但是通过获取返回行数组的长度可以很容易地找到它。

Hi@Kerr,你知道在使用分页时如何存档吗?在这种情况下,数组中的行数与每页的结果数相同。我怎样才能得到我的查询的总结果计数(不发送另一个查询)?我不明白你的问题。你是说总行数的值不是你所期望的吗?也许最好问一个新问题,列出你在做什么,你期望/想要什么,以及你看到了什么。嗨@Kerr,Dirk问的是,如果不使用跳过和限制,而不发送单独的reduce请求,那么如何通过过滤搜索获得从地图中发出的文档总数。我们期望的是,除了显示视图中所有文档数量的total_行之外,当该键用作过滤器时,还可能有另一个属性显示文档数量。我也有同样的问题,我正在使用start和end键以及skip和limit,在不考虑限制的情况下,无法计算视图将返回的文档总数。您好,我知道您问这个问题已经有一段时间了,但您找到解决此问题的方法了吗?
{"total_rows":5680,"offset":5655, ...