我正在尝试从下面的示例数据中创建图形。我是密码新手,从教程和堆栈帮助中学到了新东西。我被困在下面的问题上。我正在尝试从多个属性的嵌套数组创建节点。
以下链接:展开从 JSON 文件加载的多个不相关的数组
示例数据:
[ { 'organization': ['MIT','Univ. of CT'],
'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'}]
这是我尝试过的:
CALL apoc.load.json('file:///test2.json') YIELD value AS class
MERGE (c:Class {name: class.name})
SET
c.organization = class.organization,
c.student_names = class.student_names
WITH c, class
UNWIND class.organization AS org
MERGE (o:Organization {name: org})
MERGE (o)-[:ACCEPTED]->(c)
WITH c, class
UNWIND class.student_names AS student
MERGE (s:StudentName {name: student})
MERGE (s)-[:ATTENDS]->(o)
我一直收到错误Neo.ClientError.Statement.SemanticError: Cannot merge node using null property value for name
.我在数据中没有看到任何空值。是什么原因造成的?我该如何解决这个问题?谢谢!!!
如果合并的属性具有空值,则 MERGE 不起作用。
在这里,使用MERGE (c:Class {name: class.name})
您正在尝试合并属性名称上的类节点,但 json 中没有这样的属性。
我猜你想把它合并到unique_id财产上。因此,您可以更改您的 as
MERGE (c:Class {unique_id: class.unique_id})
查询的其余部分看起来正常。