見てみましょう:
http://guide.couchdb.org/draft/views.html
任意の式 (JavaScript コード) で検索し、それを使用してドキュメントをインデックス化できます。
たとえば、Futon を使用して、テスト データベースを作成し、質問に基づいて次の 2 つのドキュメントを追加できます。
{ "_id": "36fef0472fb7eec035c87e4f4b0381bf", "_rev": "12-4ef9014a3670a7e6acd58ad92d26fc1e", "データ": { "年齢": 6, "収入": 10, "身長": 20, "餃子_消費": 5 }, "名前": "ジョー" }
{ "_id": "36fef0472fb7eec035c87e4f4b038ffa", "_rev": "8-f0a0a51b830bf3d4bc3ec5697440792f", "名前": "マイク", "データ": { "年齢": 27, "収入": 9, "身長": 78, "dumplings_consumed": 256 } }
Futon を使用してデータベースに移動し、次の Map 関数を使用して一時ビューを作成するだけです。
function(doc) { var 年齢、収入、身長; if (doc.name && doc.data && doc.data.age && doc.data.income && doc.data.height) { if ( doc.data.age > 25 && doc.data.age < 30 && doc.data .income < 10 && doc.data.height > 7) { emit(doc.name, doc.data); } } }
実行するだけで結果が得られます。
永続的なビューでは、リクエストが最初に実行されるときに内部 B ツリーが構築され、時間がかかります。ドキュメントがデータベースに追加された場合でも、それ以降の実行は非常に高速である必要があります (ドキュメントの数が全体の一部である限り)。