ArangoDB SORT в документе в документе в соответствии с - PullRequest
0 голосов
/ 18 января 2019

Я хочу отсортировать результат, но arango игнорирует мой aql-запрос.

Мой запрос как пример:


 FOR d IN system_menu 
    SORT d.Lvl DESC 
    SORT d.Submenu[*].Lvl DESC
 RETURN d

d.Lvl - значение INT. Как я могу отсортировать массив документов в документе?

мой документ:


{
  "System": {},
  "Controller": "reports",
  "Show": true,
  "Icon": "mdi-newspaper",
  "Lvl": 3,
  "Title": {
    "DEde": "Berichte",
    "Universal": "Reports"
  },
  "Submenu": [
    {
      "Title": {
        "DEde": "Tätigkeitsberichte",
        "Universal": "Activity reports"
      },
      "Controller": "activity-reports",
      "Tabmenu": "",
      "Filter": "",
      "Lvl": 2,
      "Show": true,
      "Hrule": false
    },
    {
      "Title": {
        "DEde": "Behördenbericht",
        "Universal": "Authority reports"
      },
      "Controller": "request-data-subject",
      "Tabmenu": "",
      "Filter": "",
      "Lvl": 1,
      "Show": true,
      "Hrule": false
    },
    {
      "Title": {
        "DEde": "Auskunftsersuchen",
        "Universal": "Request from a data subject"
      },
      "Controller": "request-data-subject",
      "Tabmenu": "",
      "Filter": "",
      "Lvl": 3,
      "Show": true,
      "Hrule": false
    }
  ]
}

Сортировка не работает! Как я сортирую все мои документы по INT от 1 ... 100?

1 Ответ

0 голосов
/ 18 января 2019

Для сортировки внутреннего массива вы можете использовать внутренний цикл, например,

FOR d IN system_menu 
  SORT d.Lvl DESC 
  LET submenus = (
    FOR s IN d.Submenu
      SORT s.Lvl DESC
      RETURN s
  )
  RETURN MERGE(d, { Submenu: submenus })
...