나는 arangodb에 매우 익숙하며 대단히 좋아하지만 쿼리 문을 작성하는 데 어려움을 겪고있다. 두 컬렉션 (VA, VB) 및 그 사이에 가장자리가 있음 특정 필터 (예 : _id)가 아닌 Va를 찾은 다음 EC에 특정 속성이있는 경우 (예 : VB) RETURN 문서 (VB) . 활성 : true)ArangoDB가 연결된 꼭지점을 찾는다
문서에서 나는 vertex가 이미 알려진 경우에만 예제를 발견했습니다. 미리 감사드립니다. Jnl
나는 arangodb에 매우 익숙하며 대단히 좋아하지만 쿼리 문을 작성하는 데 어려움을 겪고있다. 두 컬렉션 (VA, VB) 및 그 사이에 가장자리가 있음 특정 필터 (예 : _id)가 아닌 Va를 찾은 다음 EC에 특정 속성이있는 경우 (예 : VB) RETURN 문서 (VB) . 활성 : true)ArangoDB가 연결된 꼭지점을 찾는다
문서에서 나는 vertex가 이미 알려진 경우에만 예제를 발견했습니다. 미리 감사드립니다. Jnl
그래, 그래프를 작성하면 조금 더 쉬워 지지만 그래도 그래프를 사용하지 않고도 쿼리 할 수 있습니다.
이
그냥 직접 세 가지 컬렉션을 사용하여 작동합니다 예입니다 : 당신이 그래프를 사용하려면 하나를 테스트되었을 수 있습니다처럼FOR va IN VA
FILTER va.name == 'Bob'
FOR e IN EC
FILTER e._from == va._id && e.active == true
FOR vb IN VB
FILTER e._to == vb._id
RETURN vb
, 보이는, 다음이 작동합니다
을myOrigin
은 _id 일 필요가 있습니다. 이는 값을 지정할 때 FIRST(...)
값을 지정할 때 사용한다는 것을 의미합니다. 이렇게하면 배열이 아닌 단일 값을 얻을 수 있습니다 (첫 번째 값).
귀하의 예제는 작동 :
FOR m IN VA FILTER m.name == 'Bob'
FOR v, e, p IN 1..1 ANY m GRAPH 'GD'
FILTER p.edges[0].active == true
RETURN v
주목해야 할 것은이 예제는 .name == 'Bob'
을 가질 수 이상의 문서로 (두 개 이상의 문서를 일치 수과 일치 VB
의 모든 노드를 반환 할 것입니다. 당신이 VB와 연결하고, 일치하는 여러 VA 값을 갖는 옵션을 있었다 VA에있는 항목을 표시하는 결과를 원한다면
, 이것은 당신을 도울 것입니다 :
FOR m IN VA FILTER m.name == 'Bob'
FOR v, e, p IN 1..1 ANY m GRAPH 'GD'
FILTER p.edges[0].active == true
RETURN {
origin: m,
connected_to: v
}
당신이 결과를 정리하려면 17,451,515,
, 당신은 결과를 더 잘 만들기 위해 UNSET를 사용할 수 있습니다
FOR m IN VA FILTER m.name == 'Bob'
FOR v, e, p IN 1..1 ANY m GRAPH 'GD'
FILTER p.edges[0].active == true
RETURN {
origin: UNSET(m, '_key', '_rev'),
connected_to: UNSET(v, '_key', '_rev')
}
는 그냥 쿼리에서 사용자에게 전송 결과에서 해당 키를 제거합니다.
데이터를 검색하는 방법이 너무 많아서 다른 예제를 보면 AQL에 대한 느낌을 실제로 얻을 수 있습니다.
FOR m IN VA FILTER m.name == 'some name'1..1 ANY m GRAPH 'namedGraph'필터 p.edges [0] .active == true 반환 값 v – Janul