Neo4j/Cypher 从多个嵌套创建节点 json

Neo4j/Cypher Create nodes from multiple nested json

我正在尝试根据下面的示例数据创建图表。我是 cypher 的新手,从教程和堆栈帮助中学到了新东西。我被困在下面的问题上。我正在尝试从多个属性的嵌套数组创建节点。

继 link 之后:

示例数据:

[   {   '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}) 您正在尝试合并 属性 name 上的 Class 节点,但没有这样的 属性 在 json.

我猜你想在 unique_id 属性 上合并它。所以你可以改变你的 as

MERGE (c:Class {unique_id: class.unique_id})

查询的其余部分看起来没问题。