2014-03-28 62 views
1

我是Neo4j的新手,面臨一個小問題。用neo4j在json中創建多個節點

我創建了大約5000個路由器節點,並將其ipaddress屬性設置爲特定的ip。 現在我有大約5000多個接口,需要創建它們的節點。我正在使用JSON並在C++中保留api。

每個接口都有一個Routerip屬性,如果routerip一個已經創建的路由器節點的ip地址匹配我需要創建一個接口。

我已經使用這個 http://docs.neo4j.org/chunked/snapshot/rest-api-cypher.html#rest-api-create-mutiple-nodes-with-properties鏈接創建我的路由器。 現在我想使用相同的方法來創建我的接口。 有沒有一種方法,我可以這樣做,傳遞數組屬性作爲參數在密碼查詢中,並檢查路由器當前是否創建我的接口?

回答

3

有幾種方法可以做到這一點。它分解成以下步驟:

  • 對於每一個界面,找到匹配的路由器
  • 創建接口&接口連接到路由器

這看起來像

MATCH (router:Router) 
WHERE router.ipaddress = props.RouterIp 
CREATE (n:Interface { props })-[:CONNECTED_TO]->(router) 
+0

並且不要忘記爲快速查找創建索引或約束'創建索引:路由器(ipaddress)' –

+0

非常感謝。我會檢查這個 – Nipun

+0

嗨, 當我嘗試執行上面使用curl它給錯誤說「沒有定義道具」 查詢。 – Nipun

0

嘿當我嘗試運行這個簡單的查詢如上所示,它給了我java異常

{ 
    "params" : { 
     "props" : [ 
     { 
      "LocalAsNumber" : 0, 
      "NodeDescription" : "10TiMOS-B-4.0.R2 ", 
      "NodeId" : "10.227.28.95", 
      "NodeName" : "BLR_WAO_SARF7" 
     } 
     ] 
    }, 
    "query" : "MATCH (n:Router) where n.NodeId = {props}.NodeId RETURN n"} 

「消息」: 「該聲明已被關閉。」, 「異常」: 「BadInputException」, 「全稱」: 「org.neo4j.server.rest.repr.BadInputException」, 「堆棧跟蹤」 : 「org.neo4j.server.rest.repr.RepresentationExceptionHandlingIterable.exceptionOnHasNext(RepresentationExceptionHandlingIterable.java:50)」, 「org.neo4j.helpers.collection.ExceptionHandlingIterable $ 1.hasNext(ExceptionHandlingIterable.java:46)」,「組織。 neo4j.helpers.collection.IteratorWrapper.hasNext(IteratorWrapper.java:42) 「 」org.neo4j.server.rest.repr.ListRepresentation.serialize(ListRepresentation.java:71)「,」 org.neo4j.server.rest。 repr.Serializer.serialize(Serializer.java:75)「,」org.neo4j.server.rest.repr.MappingSerializer.putList(MappingSerializer.java:61)「,」org.neo4j.server.rest.repr.CypherResult Representation.serialize(CypherResultRepresentation.java:83) 「 」org.neo4j.server.rest.repr.MappingRepresentation.serialize(MappingRepresentation.java:41)「,」 org.neo4j.server.rest.repr.OutputFormat.assemble( OutputFormat.java:215)「,」org.neo4j.server.rest.repr.OutputFormat.formatRepresentation(OutputFormat.java:147)「,」org.neo4j.server.rest.repr.OutputFormat.response(OutputFormat.java: 130)「,」org.neo4j.server.rest.repr.OutputFormat.ok(OutputFormat.java:67)「,」org.neo4j.server.rest.web.CypherService.cypher(CypherService.java:101)「, 「java.lang.reflect.Method.invoke(Method.java:606)」,「org.neo4j.server.rest.transactional.TransactionalRequestDispatcher.dispatch(TransactionalRequestDispatcher.java:132)」,「org.neo4j.server.rest .security.SecurityFilter.doFilter(SecurityFilter.java:112)「,」java.lang.Thread.run(Thread.java:744)「],