有没有办法在带有Cypher的Ne​​o4j中添加具有属性的多个节点

时间:2014-02-06 14:17:56

标签: merge neo4j nodes cypher

我正在尝试创建一个可重复使用的Cypher,我可以在其中快速添加多个节点(如果尚未创建它们)。 这就是我的尝试:

MERGE (n:Mal_Source {IP:'123.45.543', time:'12.32.12', location:'Canada', Classifier:'IP_ADRESS',Date:'12/21/01'}),
(n:Mal_Source { IP:'123.45.542', time:'12.2.12', location:'Laos', Classifier:'IP_ADRESS',Date:'01/02/13'}),
(n:Mal_Source { IP:'123.45', time:'12.32.1', location:'Uruguay', Classifier:'IP_ADRESS',Date:'03/05/09'}),
(n:Mal_Source { IP:'123.543', time:'1.32.12', location:'Chile', Classifier:'IP_ADRESS',Date:'05/06/07'}),
(n:Mal_Source { IP:'333.45.543', time:'1212.32.12', location:'Vietnam', Classifier:'IP_ADRESS',Date:'06/05/12'}),
(n:Mal_Source { IP:'123.4555.543', time:'5512.32.12', location:'South Korea', Classifier:'IP_ADRESS',Date:'05/09/05'})
RETURN n

我无法弄清楚为什么它不会工作。

1 个答案:

答案 0 :(得分:0)

MERGE检查模式,因此逗号分隔的节点不构成模式。各个节点确实构成了一个模式。 MERGE不会自动检查所有逗号分隔的节点。

你需要做的两件事:

  • 对所有节点使用单独的MERGE
  • 为具有不同别名的节点命名,即n:Mal_Sourcem:Mal_Source

    MERGE (n:Mal_Source {IP:'123.45.543', time:'12.32.12', location:'Canada',     Classifier:'IP_ADRESS',Date:'12/21/01'})
    MERGE (m:Mal_Source { IP:'123.45.542', time:'12.2.12', location:'Laos', Classifier:'IP_ADRESS',Date:'01/02/13'})
    MERGE (o:Mal_Source { IP:'123.45', time:'12.32.1', location:'Uruguay', Classifier:'IP_ADRESS',Date:'03/05/09'})
    MERGE (p:Mal_Source { IP:'123.543', time:'1.32.12', location:'Chile', Classifier:'IP_ADRESS',Date:'05/06/07'})
    MERGE (q:Mal_Source { IP:'333.45.543', time:'1212.32.12', location:'Vietnam', Classifier:'IP_ADRESS',Date:'06/05/12'})
    MERGE (r:Mal_Source { IP:'123.4555.543', time:'5512.32.12', location:'South Korea', Classifier:'IP_ADRESS',Date:'05/09/05'}) 
    RETURN n,m,o,p,q,r