プロジェクトの1つでcouchdb.mappingを使用しています。必要なすべてのフィールドを含むSupportCase派生元というクラスがあります。Document
私のデータベース(と呼ばれるadmin)には、複数のドキュメントタイプが含まれています。typeすべてのドキュメントに、それらを区別するために使用するフィールドがあります。"case"ビューを使用して取得したいタイプのドキュメントがたくさんあります。supportと呼ばれるその中のビューで呼ばれる設計ドキュメントがありますcases。を使用してこのビューの結果を要求すると、必要なものが含まれているのdb.view("support/cases)リストが返さRowれます。
SupportCaseただし、1つの関数を呼び出して、システム内のすべてのリストを取得できるように、これをクラスでラップする必要がSupportCaseあります。ViewFieldプロパティを作成しました
@ViewField.define('cases')
def all(self, doc):
if doc.get("type","") == "case":
yield doc["_id"], doc
さて、電話するとSupportCase.all(db)、すべてのケースが返されます。
私が理解していないのは、このビューが事前に計算されてデータベースに保存されているのか、またはと同様にオンデマンドで実行されているのかということdb.queryです。後者の場合は遅くなるので、事前に計算されたビューを使用したいと思います。それ、どうやったら出来るの?