0

我想使用 Python 中的 ViewDefinition 类向我的 couchdb 数据库添加一个永久视图,而不是使用 Futon 来定义视图。

我已经成功添加了 map/reduce 对的 map 部分,如下所示:

postbyid = ViewDefinition(‘application’,‘postbyid’, ‘function(doc) {if (doc.type==”posts”) {emit(doc.id, doc)};}’)

postbyid.sync(database)

但是我无法计算出添加 map/reduce 对的 reduce 部分的语法。

例如,如果我的预期视图看起来像(从 Futon 复制):

"views": {
   "postbyid": {
       "map": "function(doc) {\n\tif (doc.type==\"post\") {\n  emit(doc.id, doc)};\n}",
       "reduce": "_count"

如何在 ViewDefinition 类中对 map/reduce 对的 reduce 部分进行编码?

或者,我是在正确的轨道上还是有更好的方法呢?

4

1 回答 1

1

reduce 函数作为第四个参数输入。我通过查看 couchdb 库代码发现了这一点,因为文档和示例有点稀疏。

postbyid = ViewDefinition(‘application’,‘postbyid’, ‘function(doc) {if (doc.type==”posts”) {emit(doc.id, doc)};}’ , '_count')

希望这对其他人有帮助。

于 2013-05-21T16:38:41.867 回答