我是Neo4j新手,尤其是Cypher query。我正在尝试为JSON文件中的值创建节点,因为您可以看到它的嵌套格式。使用MERGE是因为我需要像'Adam Smith‘这样的值作为下面嵌套列表中的单个节点。当“组织”不是嵌套/列表格式时,它显然工作得很好。请看下面我的试用和评论。真的很感谢你的帮助!
示例data.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'}]为organization - works创建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发布于 2019-08-07 03:22:02
在第二个查询中,s已经是一个学生的名字,所以只需这样做:
CALL apoc.load.json('file:///data.json') YIELD value
UNWIND value.student_names AS s
MERGE(st:student {name: s})https://stackoverflow.com/questions/57382640
复制相似问题