Each element within the returned array is sorted using native UTF-8 sorting according to the contents of the key portion of the emitted content. The basic order of output is as follows:
            null
          
            false
          
            true
          
Numbers
Text (case sensitive, lowercase first)
Arrays (according to the values of each element, in order)
Objects (according to the values of keys, in key order)
        You can reverse the order of the returned view information by
        using the descending query value set to true.
        For example, Retrieving the list of recipes using the
        by_title (limited to 5 records) view:
      
{
   "offset" : 0,
   "rows" : [
      {
         "id" : "3-tiersalmonspinachandavocadoterrine",
         "key" : "3-tier salmon, spinach and avocado terrine",
         "value" : [
            null,
            "3-tier salmon, spinach and avocado terrine"
         ]
      },
      {
         "id" : "Aberffrawcake",
         "key" : "Aberffraw cake",
         "value" : [
            null,
            "Aberffraw cake"
         ]
      },
      {
         "id" : "Adukiandorangecasserole-microwave",
         "key" : "Aduki and orange casserole - microwave",
         "value" : [
            null,
            "Aduki and orange casserole - microwave"
         ]
      },
      {
         "id" : "Aioli-garlicmayonnaise",
         "key" : "Aioli - garlic mayonnaise",
         "value" : [
            null,
            "Aioli - garlic mayonnaise"
         ]
      },
      {
         "id" : "Alabamapeanutchicken",
         "key" : "Alabama peanut chicken",
         "value" : [
            null,
            "Alabama peanut chicken"
         ]
      }
   ],
   "total_rows" : 2667
}Requesting the same in descending order will reverse the entire view content. For example the request
GET http://couchdb:5984/recipes/_design/recipes/_view/by_title?limit=5&descending=true Accept: application/json Content-Type: application/json
Returns the last 5 records from the view:
{
   "offset" : 0,
   "rows" : [
      {
         "id" : "Zucchiniinagrodolcesweet-sourcourgettes",
         "key" : "Zucchini in agrodolce (sweet-sour courgettes)",
         "value" : [
            null,
            "Zucchini in agrodolce (sweet-sour courgettes)"
         ]
      },
      {
         "id" : "Zingylemontart",
         "key" : "Zingy lemon tart",
         "value" : [
            null,
            "Zingy lemon tart"
         ]
      },
      {
         "id" : "Zestyseafoodavocado",
         "key" : "Zesty seafood avocado",
         "value" : [
            null,
            "Zesty seafood avocado"
         ]
      },
      {
         "id" : "Zabaglione",
         "key" : "Zabaglione",
         "value" : [
            null,
            "Zabaglione"
         ]
      },
      {
         "id" : "Yogurtraita",
         "key" : "Yogurt raita",
         "value" : [
            null,
            "Yogurt raita"
         ]
      }
   ],
   "total_rows" : 2667
}
        The sorting direction is applied before the filtering applied
        using the startkey and
        endkey query arguments. For example the
        following query:
      
GET http://couchdb:5984/recipes/_design/recipes/_view/by_ingredient?startkey=%22carrots%22&endkey=%22egg%22 Accept: application/json Content-Type: application/json
        Will operate correctly when listing all the matching entries
        between “carrots” and egg. If
        the order of output is reversed with the
        descending query argument, the view request
        will return no entries:
      
GET http://couchdb:5984/recipes/_design/recipes/_view/by_ingredient?descending=true&startkey=%22carrots%22&endkey=%22egg%22 Accept: application/json Content-Type: application/json
The returned result is empty:
{
   "total_rows" : 26453,
   "rows" : [],
   "offset" : 21882
}
        The results will be empty because the entries in the view are
        reversed before the key filter is applied, and therefore the
        endkey of “egg” will be seen
        before the startkey of
        “carrots”, resulting in an empty list.
      
        Instead, you should reverse the values supplied to the
        startkey and endkey
        parameters to match the descending sorting applied to the keys.
        Changing the previous example to:
      
GET http://couchdb:5984/recipes/_design/recipes/_view/by_ingredient?descending=true&startkey=%22egg%22&endkey=%22carrots%22 Accept: application/json Content-Type: application/json