【发布时间】:2019-08-06 19:16:47
【问题描述】:
我是 Neo4j 的新手,尤其是 Cypher 查询。我正在尝试为 JSON 文件中的值创建节点,因为您可以在嵌套格式中看到它。使用MERGE,因为我需要像'Adam Smith' 这样的值作为下面嵌套列表中的单个节点。当“组织”不是嵌套/列表格式时,它显然运作良好。请参阅下面的我的试用和 cmets。非常感谢您的帮助!
示例数据.json
[ { 'organization': 'MIT',
'student_names': ['Adam Smith'],
'unique_id': 'ABC123'},
{ 'organization': 'Harvard',
'student_names': ['Adam Smith', 'Cate Scott'],
'unique_id': 'ABC124'},
{ 'organization': 'Harvard',
'student_names': ['Mandy T.', 'Bob Smith'],
'unique_id': 'ABC125'}]
为组织创建 2 个节点 - 工作
CALL apoc.load.json('file:///data.json') YIELD value as v
MERGE (o:org {name: v.organization})
// Added 2 labels, created 2 nodes, set 2 properties, completed after 5 ms.
没用
CALL apoc.load.json('file:///data.json') YIELD value as v
UNWIND v.student_names as s
MERGE(st:student {name: s.student_names})
错误:Neo.ClientError.Statement.TypeError: Type mismatch: expected a map but was String("Adam Smith")
寻找一个像这样解开的图表。我想我可以自己定义关系,我只是想看看如何开始创建节点。
ABC123 --> MIT --> Adam Smith
ABC124 --> Harvard --> Adam Smith
ABC124 --> Harvard --> Cate Scott
ABC125 --> Harvard --> Mandy T.
ABC125 --> Harvard --> Bob Smith
【问题讨论】:
标签: neo4j cypher neo4j-apoc