Couchdb 如何计算选择器筛选的记录数

Couchdb 如何计算选择器筛选的记录数,couchdb,hyperledger-fabric,hyperledger-chaincode,Couchdb,Hyperledger Fabric,Hyperledger Chaincode,我正在与Go签订智能合约,我想使用Rich Query获得CouchDB中的记录总数,这些记录由一些选择器过滤,如: {\'selector\':{\'doc\'u type\':\'person\'} 它类似于: 从tb中选择计数(*),其中… 作为SQL查询,但如何使用CouchDB进行查询?如果要在chaincode中执行丰富的查询,那么您所能做的就是迭代结果并对每个结果进行计数。还要注意,hyperledger结构限制了您可以查询的记录总数(这是一个配置参数),因此这也是另一个考虑因素。

我正在与Go签订智能合约,我想使用Rich Query获得CouchDB中的记录总数,这些记录由一些选择器过滤,如:

{\'selector\':{\'doc\'u type\':\'person\'}

它类似于:

从tb中选择计数(*),其中…


作为SQL查询,但如何使用CouchDB进行查询?

如果要在chaincode中执行丰富的查询,那么您所能做的就是迭代结果并对每个结果进行计数。还要注意,hyperledger结构限制了您可以查询的记录总数(这是一个配置参数),因此这也是另一个考虑因素。 我建议读这一节
因为听起来您试图执行的操作可能不是很有效

您有什么问题?该查询不起作用吗?在CouchDB中,它不支持聚合查询。所以我必须通过链码实现它,通过循环和逐个计算每条记录。我的问题是,有没有什么方法可以提高性能?“在CouchDB中,它不支持聚合查询”,当然支持。这就是问题的关键。所以如果我想计数,我必须循环并手动计数,对吗?如果我有超过10K的记录,它会减慢我的查询速度吗?我使用的方法是
GetQueryResultWithPagination
。可能是重复的,我现在使用此方法获取总记录计数。我使用
GetQueryResultWithPagination
以页面和计数的形式查询所有记录。我正在寻找性能更好的替代方法。目前链码没有其他方法。我提供的链接提供了来自客户端的建议作为示例。