내 webapp는 문서 속성의 여러 정렬 된 목록을 그래프로 표시해야합니다. 이들은 hours
, cycles
및 age
입니다.ArangoDB의 다중 정렬
그래프를 아름답게 가로 지르는 AQL 쿼리를 사용하여 2ms 내에 모든 데이터가 필요합니다. 나는 감동했다! 하지만 각 그래프별로 정렬해야합니다. 쿼리는 현재 세 개의 속성과 ID가 모두 적용되는 json 객체의 배열을 반환합니다. 굉장해. 쿼리는 속성 중 하나에서 매우 쉽게 정렬됩니다.
내 문제는 : 세 가지 모두 정렬 된 목록이 있어야하며 데이터가 모두 내 문서가 반환 된 동일한 문서에 있기 때문에 데이터베이스를 세 번 쿼리하지 않는 것이 좋습니다. 하나는 cycles
과 ID 및 age
및 ID를 포함하는 하나를 포함하는, hours
를 포함 하나는 ID :
내가 JSON 객체의 세 가지 정렬 된 배열을 반환하고 싶습니다. 이렇게하면 내 그래프는 클라이언트 측 정렬없이 세 그래프를 모두 쉽게 표시 할 수 있습니다.
데이터베이스가 매우 빠름에도 불구하고 HTTP 요청 자체는 많은 시간을 필요로하므로 데이터 자체가 작기 때문에이 세 가지 모두를 한 번에 가져오고 싶습니다.
for v, e, p in outbound startNode graph 'myGraph'
filters & definitions...
sort v.hours desc
return {"hours": v.hours, "cycles": v.cycles, "age": v.age, "id": v.id}
내가 아란 나에게이 구조를 반환 말할 수있는 쉬운 방법이 있나요 :
내 현재 질의는 간단한 그래프 탐색입니까?
{
[
{
"id": 47,
"hours": 123
},
{
"id": 23,
"hours": 105
}...
],
[
{
"id": 47,
"cycles": 18
},
{
"id": 23,
"cycles": 5
}...
],
[
{
"id": 47,
"age": 4.2
},
{
"id": 23,
"age": 0.9
}
]
}
가능한 빨리 탐색을 수행하지만 가능하면 그래프를 3 번 다시 탐색하지 않아도됩니다.
'데이터'에 대해 시간 단위로 정렬 할 수 있으므로 정렬을위한 순회 및 하위 쿼리는 없지만 정렬이있는 순회는 하나 뿐이지 만 다른 정렬 순서는 두 개의 하위 쿼리가 있습니다. 내가 추측하지만 그것은별로 다르지 않다. – CoDEmanX
시간,주기 및 나이 정렬 순서가 매우 유사하기 때문에 더 빠를 것이라고 생각합니다. 임의 순서로 세 번 정렬하면 시간이 오래 걸리는 것처럼 보입니다. –
좋아요, 나는 그렇게하려고했습니다. 위의 방법으로 3ms가 소요되고 몇 시간 씩 선점 한 다음 미리 정렬 된 목록을 기준으로주기와 나이를 정렬하는 데 5ms가 걸립니다. 나는 그것을 기대하지는 않았지만, 정렬은이 최적화로 실제로 더 느립니다. –