Neo4j仅在不存在查询时创建

时间:2014-03-27 11:07:05

标签: neo4j

我正在使用json在noe4j中创建节点 我用curl和json

编写了一个小的c ++ prog

现在我必须在neo4j中创建大约10000个节点,其属性具有名称和值。 为此我在json中使用道具,查询为

{
   "params" : {
      "props" : {
        [{name : "a", value : 1}, {name : "b", value : 2}......so on]
]
      }
   },
   "query" : "CREATE (n:Router { props }) RETURN n"
}

问题是我只想创建具有唯一名称的节点。如果一个节点已经存在,其名称与json道具一样,我不想创建它。 如何在neo4j中为这些类型的请求编写查询

1 个答案:

答案 0 :(得分:2)

将您的查询更改为以下内容:

{
  "params" : {
    "props" : {
      [{name : "a", value : 1}, {name : "b", value : 2}......so on]
    ]
  }
},
   "query" : "FOREACH (router in {props} | MERGE (n:Router {name: router.name}) ON CREATE SET n = router)"
}

基本上它会迭代列表中的项目,检查name属性是否存在,以及保存新节点的情况