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