그래프에서 사용자는 많은 항목에 연결되어 있고 각 항목은 많은 하위 항목으로 재귀 적으로 나눌 수 있습니다. 내 항목이 특정 순서를 가지고 있기 때문에, 나는 내 데이터를 모델링하는 두 가지 옵션을 고려하고 있습니다 :AQL 쿼리를 개선하기위한 아이디어
가 지금은 주어진 사용자 ID에 대한 항목이 두 가지 수준의 검색 쿼리를 만들려고합니다. 이 AQL 내 첫 번째 시도이다
for itemId in (for b in board filter b._from == @_from sort b.order return b._to)
for item1 in (for t in item filter t._id == itemId return keep(t, '_id', 'title'))
return merge(item1, {board: (
for itemId2 in (for b in board filter b._from == item1._id sort b.order return b._to)
for t in item filter t._id == itemId2 return keep(t, '_id', 'title')
)})
쿼리가 작동하고는이 같은 결과를 출력합니다
[
{
"title": "item 1",
"_id": "item/41260117498",
"board": [
{
"title": "item 4",
"_id": "item/42205736442"
},
{
"title": "item 5",
"_id": "item/42208423418"
}
]
},
{
"title": "item 2",
"_id": "item/41260772858",
"board": []
},
{
"title": "item 3",
"_id": "item/41883233786",
"board": []
}
]
괜찮지 만 내 쿼리 같은 간단한 탐색을 위해 불필요하게 복잡 같은 느낌 . 누군가 제가 더 나은 것을 만들 수 있도록 도와 주시겠습니까?