簡體   English   中英

如何在ArangoDB中的對象數組中過濾和排序對象數組

[英]How to Filter and Sort array of object within array of object in ArangoDB

嗨,我的有效載荷如下:

{
  "Id": "3",
  "List": {
    "Steps": [
      {
        "StepId": "1",
        "stepDesc1": [
          {
            "sortNo": "2",
            "description": "ABC"
          },
          {
            "sortNo": "1",
            "description": "XYZ"
          }
        ],
        "stepDesc2": [
          {
            "sortNo": "2",
            "description": "AAA"
          },
          {
            "sortNo": "1",
            "description": "BBB"
          }
        ]
      },
      {
        "StepId": "2",
        "stepDesc1": [
          {
            "sortNo": "2",
            "description": "CCC"
          },
          {
            "sortNo": "1",
            "description": "DDD"
          }
        ],
        "stepDesc2": [
          {
            "sortNo": "2",
            "description": "EEE"
          },
          {
            "sortNo": "1",
            "description": "FFF"
          }
        ]
      }
    ]
  }
}

我想按 Id 和 StepId 過濾並按 SortNo 排序並返回數據

我使用以下查詢按 Id 和 StepId 過濾

FOR test IN test_data
FILTER test.Id=='3' 
FILTER '1' IN test.List.Steps[*].StepId
SORT test.List.Steps[*].stepDesc1.sortNo ASC
RETURN test.Steps

但第二個過濾條件不起作用,並返回與 Id 3 對應的所有步驟。在我的情況下,它應該返回低於 o/p

{
        "StepId": "1",
        "stepDesc1": [
          {
            "sortNo": "2",
            "description": "ABC"
          },
          {
            "sortNo": "1",
            "description": "XYZ"
          }
        ],
        "stepDesc2": [
          {
            "sortNo": "2",
            "description": "AAA"
          },
          {
            "sortNo": "1",
            "description": "BBB"
          }
        ]
      }

任何人都可以幫我解決一個問題

我相信你正在尋找的是這樣的。 因為您應用的第二個 FILTER 是 true 1確實在數組中,但是 AQL 不排除2 它只是說1必須存在。 如果您循環嵌套數組 - 那么您可以使用== 希望這可以幫助。

FOR test IN test_data
   FILTER test.Id == '3' 
    FOR step IN test.List.Steps
        FILTER step.StepId == '1' 
        SORT step[*].stepDesc1.sortNo ASC

RETURN step

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM