0

我正在尝试将文档映射类用于 python couchdb 库,但我发现文档非常不足

它包含几行代码,说明如何在您使用的 Document 子类上定义视图,但这些代码与 COuchDB 设计文档不同步。我曾尝试在 CouchDB 设计文档(通过 Futon)和我的 python 类中使用相同的代码编写相同的视图,但这不会同步它们。我能够让视图在其他库(例如沙发查询)中工作,因此问题不是视图本身它们在 JavaScript 或 Python 中工作,不幸的是我已承诺使用 DOcument 子类来包含我希望与我的文档相关联的功能子类。我找到了其他关于如何使用直接 Doc 类将视图同步到 CouchDB 的其他好信息,而没有 variuos 字段类型提供的映射: 在 Python 中加载 CouchDB 设计文档的推荐方法? 在这里: http: //markhaase.com/2012/06/23/couchdb-views-in-python/ 但他们没有找到关于如何使用映射文档子类工作的文档

我使用了文档中描述的两种形式:

class Person(Document):
...     name = TextField()
...     age = IntegerField()
...     by_name = ViewField('people', '''\
...         function(doc) {
...             emit(doc.name, doc);
...         }''')

和:

class Person(Document):
...     name = TextField()
...     age = IntegerField()
...
...     @ViewField.define('people')
...     def by_name(doc):
...         yield doc['name'], doc ( for Python views ):

当视图被调用时,它会失败并且它会立即显示为什么:检查 Futon 显示视图不在设计文档中

如果我通过各种方式在设计文档中创建视图,该视图可以工作,但它没有连接到我的 Document 子类(本例中的 Person 类)。

我想我希望这会让人感觉更放松我虽然使用沙发查询来获取视图结果并尝试将这些对象分配到我在单独库 python couchdb 中的 DOcument 子类中,但这似乎非常绝望和脏,我什至无法轻松访问沙发查询中的字典信息。让我知道是否有人可以告诉我这应该如何工作。我怀疑文档中完全缺少一个简单的答案,否则没有人会编写文档映射功能

4

1 回答 1

0

欢迎任何想为社区利益解决这些问题的人,我的回答是继续使用 CouchDBKit 库,我建议其他人也这样做。与 couchdb-python 有很多相似之处,包括我想要的映射功能,但它是一个维护得更好的库,带有下降文档,一个简单而强大的架构,与 Django 和 FormAlchemy 的一些很好的集成,还有一些额外的好处,比如在 CouchDB 和文件系统和数据库更改侦听器。就我的目的而言,couchdb-python 没有什么是 couchdbkit 没有的。

于 2014-02-27T07:02:02.213 回答