如何使用CouchDB在单个查询中计数?

时间:2012-01-03 22:32:22

标签: couchdb aggregation

如何使用CouchDB在单个查询中计数?

我可以使用map-reduce来构建独立视图[{key: post_id, value: comments_count}],但之后我不得不两次点击DB - 一个查询获取帖子,另一个查询获得comments_count。

还有另一种方式(Rails这样做) - 在应用程序服务器上手动计数注释并将其保存在帖子的comment_count属性中。但是,每当添加或删除新评论时,我们都需要更新整个帖子文档。 在我看来,CouchDB没有针对这种方式进行调整,与RDBMS不同,当我们只更新CouchDB中的comment_count属性时,我们不得不更新整个帖子文档。

也许有另一种方法可以做到这一点?

感谢。

1 个答案:

答案 0 :(得分:0)

视图的返回json包含文档计数为'total_rows',因此您不需要自己计算任何内容,只需发出您想要计算的所有文档。

{"total_rows":3,"offset":0,"rows":[
   {"id":...,"key":...,value:doc1},
   {"id":...,"key":...,value:doc2},
   {"id":...,"key":...,value:doc3}]
}