繁体   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