我发布了一个新问题,因为这是一个单独但与此问题相关的问题:Neo4j: Link Different Nodes to the one node
以下查询返回正确数量的节点。
MATCH (act)--(obj)
WHERE obj.filename IN ["6013", "6005"]
WITH act.timestamp as timestamp, collect(DISTINCT act) as acts
CREATE (a:Abs{name: 'SigEvent'})
FOREACH (act in acts | CREATE (act)-[:LINK]->(a))
以下查询忽略 COLLECT 并a
为集合中的每个条目创建一个节点,而不是a
为每个对创建一个节点。此外,当我移动CREATE
外部时,FOREACH
我收到以下错误:Type mismatch: expected Any, Map, Node or Relationship but was List<Map>
.
MATCH (act)--(obj)
WHERE obj.filename IN ["6013", "6005"]
WITH act.timestamp as timestamp, collect({act:act, obj:obj}) as pairs
CREATE (a:act{ Event: pairs.obj.filename, Description:pairs.act.message, timestamp:timestamp})
FOREACH (pair in pairs | CREATE (pair)-[:LINK]->(a))
示例数据集:
设置 1:(行为:“事件日志”,时间戳:3461000)(行为:“正常运行时间报告”,时间戳:3461000)
设置 2:(行为:“事件日志”,时间戳:149100)(行为:“正常运行时间报告”,时间戳:149100)
期望的结果:
(a {Source: "Event Log" & "UPtime Report", timestamp: 3461000})<-[:LINk]-(act)
(a {来源:“事件日志”和“正常运行时间报告”,时间戳:149100)<-[:LINk]-(行为)