친구 (친구 번호 : friends of friend Query in ArangoDB 3.0)를 얻는 데 필요한 기본 요구 사항을 충족하는 "친구의 친구"탐색 쿼리를 발견했습니다. 나는 그것이 약간은 문서에서 발견는 "Knows_Graph"예를 함께 작동하도록 수정하고 난 몇 가지 여분의 명 (https://docs.arangodb.com/3.1/Manual/Graphs/)그래프 - 친구 (및 1도 일반 친구)의 친구 표시
내 쿼리가 출발점으로 데이브을 사용하고 찾습니다를 추가했습니다 밥 (Bob)과 루시 (Lucy)를 통해 2 학년 친구. 스크립트는 잘 작동하지만 쿼리 결과에 1 차 친구 (bob 및 lucy)가 포함되기를 원합니다. 최소 깊이를 1로 설정하면됩니다. 그러나 그렇게하면 Bob과 Lucy의 깊이를 구분하지 않으므로 (json 출력 참조) 더 큰 그래프를 1 단계로 말할 수 없을 것입니다. I는 최소가 있다면 누가 샘플이 사용
샘플 코드 2
LET person = DOCUMENT("persons/@persons/dave")
LET foaf = (
FOR v IN 2..2 ANY person knows
RETURN v
)
RETURN MERGE(person, { foaf })
분의 깊이의 2 정도를 인 에지 수집 및 "사용자"컬렉션을 "인식"여기
는 JSON 출력 인 1의 깊이와 2의 최대 깊이를 볼 수 있습니다. 보브와 루시는 다른 컬렉션과 동일한 컬렉션 레벨에 표시됩니다. 어떻게 든 쿼리를 복잡하게하거나 성능 문제를 일으키는 일없이 제 1 레벨로 표시 할 수있는 방법을 찾고 싶습니다.[
{
"_id": "persons/dave",
"_key": "dave",
"_rev": "_U7wRsJG--_",
"name": "Dave",
"foaf": [
{
"_key": "lucy",
"_id": "persons/lucy",
"_rev": "_U8--wPq---",
"name": "Lucy"
},
{
"_key": "henry",
"_id": "persons/henry",
"_rev": "_U8-_FNa---",
"name": "Henry"
},
{
"_key": "bob",
"_id": "persons/bob",
"_rev": "_U7wRsJC--_",
"name": "Bob"
},
{
"_key": "charlie",
"_id": "persons/charlie",
"_rev": "_U7wRsJG---",
"name": "Charlie"
},
{
"_key": "alice",
"_id": "persons/alice",
"_rev": "_U7wRsJC---",
"name": "Alice"
},
{
"_key": "eve",
"_id": "persons/eve",
"_rev": "_U7wRsJG--A",
"name": "Eve"
}
]
}
]
답장을 보내 주셔서 감사합니다. 불행히도 내 그래프 이미지는 원래 Lucy의 2 학년 친구 인 "Henry"를 보여주지 않았습니다. 원본 이미지를 업데이트했습니다. 나는 2 가지를 궁금해하고있다. 귀하의 질의를 통해 깊이가 어느 정도인지를 보여줍니다. 그러나 어떤 친구가 Bob에게 속하고 어떤 친구가 Lucy에 속 하는지를 어떻게 표시 할 수 있습니까? 둘째, Eve는 Bob과 Lucy를 통해 2 학년 친구입니다. 어쨌든 이것을 보여줄 수 있습니까? 기본적으로 나는 2 학년 친구들을 모두 보여주고 싶지만 요청하는 사용자들에게 공통점이있는 1 학년 친구들을 보여주고 싶습니다. (그리고 때로는 위에있는 것 이상이 될 수도 있습니다) – Dkong
나는 내 대답을 업데이트했습니다. – mpv1989
감사합니다. 이것은 나에게 좋은 방향을 제공합니다. – Dkong