2016-07-15 2 views
0

사용자가 Excel 필터 기능을 사용하여 DWH 테이블에서 원본 테이블과 열을 쉽게 식별 할 수 있도록 데이터 계보의 테이블 형식 목록을 만들고 싶습니다. 그러나 다음의 Cypher 코드가 작동하지 않습니다.Neo4j의 Cypher를 사용하여 다른 추기경 반환 값의 항목 목록을 만들려면 어떻게해야합니까?

MATCH(a:DB {TABLE:'CONT'})-[b:RELATED*1..3]->(c:DB) 
WHERE ALL (tmp IN b WHERE tmp.CLAUSE IN ['where','join','unknown']) 
RETURN a.table,a.column,b.clause,c.table,c.column 
LIMIT 200 

다음과 같은 오류가 발생했습니다. 난 단지 지정 "A, B, C를 반환"경우

Type mismatch: expected Map, Node or Relationship but was Collection<Relationship> (line 3, column 25 (offset: 147)) 

"a.table, a.column, b.clause, c.table, c.column를 반환", 나는 다음있어 .

a b c 
{"TABLE":"TXX","COLUMN":"CXX","DB":"DXX"} [{"CLAUSE":"unknown"}] {"TABLE":"TYYY","COLUMN":"CYYY","DB":"DYYY"} 

하지만 아래 내용을 듣고 싶습니다.

TABLE,COLUMN,DB,CLAUSE,TABLE,COLUMN, 
"TXX","CXX","DXX","unknown","TYYY","CYYY","DYYY" 

어떻게하면됩니까?

답변

0

b에 바인딩 한 관계는 1 ~ 3 개의 실제 관계가있는 가변 길이 관계이므로 b를 참조하면 단일 관계가 아닌 그러한 관계의 모음을 얻게됩니다.

a, b 및 c를 사용할 때 결과에서 알 수없는 절 주위의 대괄호를 참고하십시오. 해당 컬렉션에는 최대 2 개의 다른 개체가있을 수 있습니다. 일부 데이터의 경우, 즉,이처럼 보일 수 있습니다 "A, B, C를 반환"당신이 목록 대신에서 속성을 요구하고 있기 때문에 왜 b.clause을 반환하는 것 것은 이해가되지 않습니다

{"TABLE":"TXX","COLUMN":"CXX","DB":"DXX"} [{"CLAUSE":"unknown"}, {"CLAUSE":"join"}, {"CLAUSE":"where"}] {"TABLE":"TYYY","COLUMN":"CYYY","DB":"DYYY"} 

어떤 종류의 물건.

아마도 UNWIND b를 뭔가 다른 것으로 할 수 있습니다 ... 그런 다음 뭔가를하십시오. 절을하고 그 일을하십시오. UNWIND는 항목 목록을 행으로 변경하지만 여러 개의 : RELATED 관계가있는 경우 각각 a 및 c와 함께 자신의 행에 나타납니다.

관련 문제