使用属性创建neo4j图

时间:2015-03-06 03:52:28

标签: neo4j cypher graph-databases nosql

我正在设计一个可视化显示来自Neo4J的数据的Web应用程序。这是我目前的注释:

CREATE (diseasedataset:Dataset { title: 'Disease Dataset', description: 'Dataset about diseases and mapping to cytogenetic location', creator: 'Zach'})
CREATE (diseasedata:Table { title: 'Disease', represents: 'mesh:Disease'})
CREATE (diseasedata)-[:BELONGS_TO]->(diseasedataset)
    CREATE (diseaseid:Column { title: 'ID', columntype: 'Property', semanticrelation: 'dct:identifier'})
    CREATE (diseaseid)-[:BELONGS_TO]->(diseasedata)
    CREATE (diseasename:Column { title: 'Name', columntype: 'Property', semanticrelation: 'skos:preferredLabel'})
    CREATE (diseasename)-[:BELONGS_TO]->(diseasedata)
    CREATE (diseasedesc:Column { title: 'Descriptions', columntype: 'Property', semanticrelation: 'dct:description'})
    CREATE (diseasedesc)-[:BELONGS_TO]->(diseasedata)
    CREATE (diseasesymp:Column { title: 'Symptoms', columntype: 'Class', represents: 'mesh:Symptom', semanticrelation: 'syo:Symptom'})
    CREATE (diseasedesc)-[:BELONGS_TO]->(diseasedata)

如何创建一个表(使用cypher查询),每个行都有一个[Column]和每个Column的属性集合。这特别棘手,因为并非每列都具有相同的属性。例如:

行|专栏|属性

1 | dieseaseId | title,columnType,semanticRelation

2 | diseasesymp | title,columnType,represent,semanticRelation

3(等等)......

他们是一个直观的方式吗?我对Neo4j和Cypher比较陌生,并且无法在线或通过文档找到这样的内容。感谢您的时间和任何建议!

1 个答案:

答案 0 :(得分:1)

我不确定您是否可以使用一个密码查询来执行此操作。您可能需要先返回密钥,然后生成一个获取这些密钥的查询。要获得密钥,您可以返回所有数据,或者在Neo4j 2.2.0(仍然是候选发布版,但希望很快就会发布)中,您可以执行此操作:

MATCH n UNWIND keys(n) AS key RETURN DISTINCT key

这将返回一个关于您指定的节点上的唯一键的列表(这里我正在做MATCH n,它匹配所有节点。然后您可以生成一个查询,其中包含:

MATCH n RETURN n.key1, n.key2, n.key3, ....