[英]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.