我有一个带有属性documentId
和name
. 我需要创建多个活动节点,以便每个活动都与文档相关,CONTAINS
关系如下
Document-CONTAINS->Activity
现在在 Neo4J 中,我想编写一个查询,以便它在文档节点存在时合并文档节点,如果不存在则创建。在同一个查询中,它创建了一个具有CONTAINS
关系船的活动。
像下面这样
merge (d:Document{documentId:100,name:'Doc1'})-[r:CONTAINS]->(a:Activity{name:'ijk'})
return d, a
当这个查询第一次运行时,它会创建Document
和Activity
Node,它也会创建CONTAINS
关系。
当我使用不同的活动名称运行相同的查询时,它应该创建新的Activity
节点和CONTAINS
关系,并且应该合并Document
节点。
我想在一个查询中做到这一点。
是的,只需将您的节点和关系创建分开。
merge (d:Document{documentId:100}) on create set d.name='Doc1'
merge (a:Activity{name:'ijk'})
merge (d)-[:CONTAINS]->(a)
return d, a
如果您的活动不是全局唯一的,那么您可以在文档的上下文中合并它们
merge (d:Document{documentId:100}) on create set d.name='Doc1'
merge (d)-[:CONTAINS]->(a:Activity{name:'ijk'})
return d, a
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句