SQL内でのORDER BY
句は出力されるレコードの順序を制御します。ビュー内での順序はキーの値によって制御されます。しかし、キーはクエリメカニズムも制御し、サポートします。
SELECT
ステートメントで、明示的なWHERE
句がない場合、出力するキーによって目的のソートを完全に実現できます。たとえば、都市と担当営業の名前でソートするには、次のmap()
が目的のソートを実現します:
function(doc, meta) { emit([doc.city, doc.name], null) }
値へのクエリが必要で、そのクエリの仕様が順序シーケンスの一部である場合、上記フォーマットを使用することができます。たとえば、クエリの基本が都市の場合、上記ビューと適切な範囲クエリを使用して、'London'のすべてのレコードを抽出できます。
?endkey=["London\u0fff"]&startkey=["London"]
しかし、担当営業の名前でビューを問い合わせしたい場合、emit()
ステートメント内でフィールド順を逆にする必要があります:
function(doc, meta) { emit([doc.name,doc.city],null) }
すると、都市順で情報を取得しながらも、名前で検索することができます。
descending
クエリパラメータを使用することによって、出力を逆にすること(ORDER BY field DESC
と同等のこと)ができます。詳細については、「ソート」を参照してください。