How can i sort returned Result wich includes nested Arrays and optional sort it

I am wondering if it is possible in N1QL to sort based on field in array’s. I have docs which hold the definition of filters for my grids and there are 2 arrays, first one is a Array of filters for that grid which has an order key which i would like to use to display these in order. Then each filter has a array of options and each option has an order key which i also would like to use to order options before returning them. Below is a sample of a doc.

{
  "id": "",
  "_type": "grid_filter",
  "name": "Farm Grid Filter",
  "grid_guid": "43A4ED59-3515-4A19-B919-863D15A3DCBB",
  "filter": [
    {
      "order": 1,
      "enabled": true,
      "type": "single",
      "label": "Phone",
      "options": [
        {
		  "position" : 2,          
          "value": "",
          "name": "No filter",
          "selected": true
        },
        {
           "position" : 1,   
          "value": 1,
          "name": "Phone",
          "selected": false
        },
        {
         "position" : 0,   
          "value": 0,
          "name": "No Phone",
          "selected": false
        }
      ]
    },
    {
      "order": 2,
      "enabled": true,
      "type": "single",
      "label": "E-mail",
      "options": [
        {
        	 "position" : 0,   
          "value": "",
          "name": "No filter",
          "selected": true
        },
        {
          "position" : 2,   
          "value": 1,
          "name": "Has Email",
          "selected": false
        },
        {
        	 "position" : 1,   
          "value": 0,
          "name": "No Email",
          "selected": false
        }
      ]
    },
    {
      "order": 3,
      "enabled": true,
      "type": "single",
      "label": "Owner Occupied",
      "options": [
        {
        	 "position" : 0,   
          "value": "",
          "name": "No filter",
          "selected": true
        },
        {
        	 "position" : 2,   
          "value": 1,
          "name": "Yes",
          "selected": false
        },
        {
        	 "position" : 1,   
          "value": 0,
          "name": "No",
          "selected": false
        }
      ]
    },
    {
      "order": 4,
      "enabled": true,
      "type": "multi",
      "label": "Tracts",
      "options": [
        {
          "value": "track1",
          "name": "Track 1",
          "selected": true
        },
        {
          "value": "track2",
          "name": "Track 2",
          "selected": false
        },
        {
          "value": "track3",
          "name": "Track 3",
          "selected": false
        },
        {
          "value": "track4",
          "name": "Track 4",
          "selected": false
        }
      ]
    }
  ],
  "_id": "28205463-5218-4986-800c-22e01cdeef5c"
}

Use sub query expression. This allows you explore full functionality of SQL (make array source of sub query)

SELECT d.* , 
        (SELECT f.*, 
                (SELECT RAW o
                 FROM f.options AS o
                 ORDER BY o.position) AS options
         FROM d.filter AS f 
         ORDER BY f.`order`) AS filter
FROM default AS d
WHERE _type = "grid_filter";