0

私は、Pythonのcouchdbライブラリにドキュメントマッピングクラスを使用しようとしていますが、ドキュメントが非常に不十分であることがわかりました

使用している Document サブクラスでビューを定義する方法に関する数行のコードが含まれていますが、これらは COuchDB 設計ドキュメントと同期されていません。CouchDB 設計ドキュメント ( Futon を使用) と python クラスで同じコードを使用して同じビューを作成しようとしましたが、同期しません。カウチ クエリなどの他のライブラリで動作するビューを取得できるため、問題のビュー自体ではありません。残念ながら、JavaScript または Python で動作します。ドキュメントに関連付けたい機能を含めるために、DOcument サブクラスを使用することを約束しました。サブクラス。ここで、さまざまなフィールドタイプによって提供されるマッピングなしで、ストレート Doc クラスを使用してビューを CouchDB に同期する方法に関する他の良い情報を見つけました。 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 クラス) に接続されません。

ビューの結果を取得するためにcouch-queryを使用し、それらのオブジェクトを別のライブラリpythoncouchdbのDOcumentサブクラスにゲリマンダーしようとしましたが、これがもっとリラックスできることを望んでいたと思いますが、これは非常に必死のようですとにかく、ソファクエリの辞書情報に簡単にアクセスすることさえできません。これがどのように機能するかを誰かが教えてくれるかどうか教えてください。ドキュメントに完全に欠落している簡単な答えがあると思います。さもなければ、誰もドキュメント マッピング機能を記述していないでしょう。

4

1 に答える 1

0

コミュニティの利益のためにこれらの質問に対処したい人は誰でも歓迎します。私の答えは、CouchDBKit ライブラリに移動することであり、他の人にもそうするよう提案します。私が望んでいたマッピング機能を含め、couchdb-python と多くの類似点がありますが、Descent ドキュメント、シンプルで強力なアーキテクチャ、Django および FormAlchemy とのいくつかの優れた統合、および CouchDB とファイルシステム、およびデータベース変更リスナー。私の目的では、couchdb-python が持っていて、couchdbkit が持っていないものは何もありません。

于 2014-02-27T07:02:02.213 に答える