如何在python的couchdb中添加过滤器功能?

时间:2013-04-10 00:17:21

标签: python couchdb

我知道我可以使用couchdb.ViewDefinition为数据库创建一个视图。是否有类似创建更改过滤器功能的东西,或者我可以用过滤器字段创建一个设计文档?

1 个答案:

答案 0 :(得分:2)

目前没有这样的东西,除非你将设计文件作为常规操作例如将python函数转储到源代码并将其分配给ddoc filters字段。

您可以尝试从issue 186应用补丁:它以类似于当前视图的方式提供对定义show / list / update / filter / validate_doc_update函数的支持。

例如:

from couchdb import design, mapping

class Post(mapping.Document):

   by_author = design.FilterFunction('posts', 'by_name', '''
function(doc, req){
  if (req.query.author){
    return doc.author === req.query.author;
  }
  throw({'invalid_query': 'author name was not specified'});
}
''')

if __name__ == '__main__:
    design.sync_docs(db, [Post])

欢迎提供反馈和错误(: