我必须创建一组关系,所有关系都具有相同的来源和类型,如以下示例所示:
create (_1)-[:`typ`]->(:`x` {`name`:"Mark"})
create (_1)-[:`typ`]->(:`y` {`name`:"Jane"})
create (_1)-[:`typ`]->(:`z` {`name`:"John"})
...
我想有一种简短的方式来编写这些语句,例如下面的尝试?
create (_1)-[:`typ`]->[(:`x` {`name`:"Mark"}),
(:`y` {`name`:"Jane"}),
(:`z` {`name`:"John"})]
有什么主意吗?
谢谢。
保罗
答案 0 :(得分:2)
您可以通过此模式以高效且简便的方式进行操作:
{batch: [
{from:"alice@example.com",to:"bob@example.com",properties:{since:2012}},
{from:"alice@example.com",to:"charlie@example.com",properties:{since:2016}}]}
UNWIND {batch} as row
MATCH (from:Label {row.from})
MATCH (to:Label {row.to})
CREATE/MERGE (from)-[rel:KNOWS]->(to)
(ON CREATE) SET rel += row.properties
感谢@MichaelHunger的5 Tips & Tricks for Fast Batched Updates of Graph Structures with Neo4j and Cypher。