如何使用CouchDB在单个查询中计数?
我可以使用map-reduce来构建独立视图[{key: post_id, value: comments_count}]
,但之后我不得不两次点击DB - 一个查询获取帖子,另一个查询获得comments_count。
还有另一种方式(Rails这样做) - 在应用程序服务器上手动计数注释并将其保存在帖子的comment_count
属性中。但是,每当添加或删除新评论时,我们都需要更新整个帖子文档。
在我看来,CouchDB没有针对这种方式进行调整,与RDBMS不同,当我们只更新CouchDB中的comment_count
属性时,我们不得不更新整个帖子文档。
也许有另一种方法可以做到这一点?
感谢。
答案 0 :(得分:0)
视图的返回json包含文档计数为'total_rows',因此您不需要自己计算任何内容,只需发出您想要计算的所有文档。
{"total_rows":3,"offset":0,"rows":[
{"id":...,"key":...,value:doc1},
{"id":...,"key":...,value:doc2},
{"id":...,"key":...,value:doc3}]
}