我想MERGE
一个节点:
MERGE (a: Article {URL: event.URL})
如果该节点不存在,则需要这样做:
ON CREATE FOREACH( site_name in CASE WHEN event.site_name is not null then [1] ELSE [] END |
MERGE (w: Website { value: event.site_name})
MERGE (w)-[:PUBLISHED]->(a))
// all of the tag creation
FOREACH( tag in CASE WHEN event.tags is not NULL then event.tags else [] END |
Merge (t: Article_Tag {value: tag})
CREATE (a)-[: HAS_ARICLE_TAG {date:event_datetime}]->(t))
我相信ON CREATE
仅适用于SET
,但如上所述,我需要执行多个语句。是否可以使用ON CREATE
子句创建多个节点和关系?
编辑:我已经尝试过ON CREATE FOREACH(ignoreme in case when event.article is not null then [1] else [] end |... multiple statements
,但这不能逃避SET问题。
这是执行此操作的最佳方法:只需将其包装在FOREACH语句中
MATCH (a: Article {URL: event.URL})
FOREACH(ignoreme in case when a is not null then [1] else [] end |... Statement here...)