簡體   English   中英

如何使用cypher更新neo4j中的多個節點?

[英]How do you update multiple nodes in neo4j using cypher?

我有產品的日期我想在批處理操作中更新。 這是我正在使用的密碼的一部分,它不起作用:

match (p { Date:9102013 }) set p.Date = '9/10/2013' with p 
match (p { Date:9302013 }) set p.Date = '9/30/2013' with p 
match (p { Date:1092013 }) set p.Date = '1/0/2013' with p 
match (p { Date:1292013 }) set p.Date = '1/2/2013' with p 
match (p { Date:6182013 }) set p.Date = '6/18/2013' with p 
match (p { Date:9202013 }) set p.Date = '9/20/2013' with p 
match (p { Date:4262013 }) set p.Date = '4/26/2013' with p 
match (p { Date:4162013 }) set p.Date = '4/16/2013' with p 
match (p { Date:1142013 }) set p.Date = '1/1/2013' with p 
match (p { Date:9252013 }) set p.Date = '9/25/2013' with p 
match (p { Date:1151900 }) set p.Date = '1/1/1900' with p 
match (p { Date:4112013 }) set p.Date = '4/11/2013' with p 
match (p { Date:1242013 }) set p.Date = '1/2/2013' with p 
match (p { Date:10142013 }) set p.Date = '10/14/2013' with p 
match (p { Date:5202013 }) set p.Date = '5/20/2013' with p 
match (p { Date:212013 }) set p.Date = '2/12/2013' with p 
match (p { Date:10292013 }) set p.Date = '10/29/2013' with p 
match (p { Date:262013 }) set p.Date = '2/6/2013' with p 
match (p { Date:10242013 }) set p.Date = '10/24/2013' with p 
match (p { Date:312013 }) set p.Date = '3/12/2013' with p 
match (p { Date:5102013 }) set p.Date = '5/10/2013' with p 
match (p { Date:2282013 }) set p.Date = '2/28/2013' with p 
match (p { Date:5302013 }) set p.Date = '5/30/2013' with p 
match (p { Date:5152013 }) set p.Date = '5/15/2013' with p 
match (p { Date:362013 }) set p.Date = '3/6/2013' return p;**

您提供的示例是單個Cypher語句。 在這種情況下,第一個匹配將設置標識符p以匹配具有Date = 9102013 (如果有)的任何節點。 因此,后續匹配語句將無法匹配任何內容,因為p已經綁定。

您應該將其修改為多個單獨的查詢,並使用Neo4j批處理API( http://docs.neo4j.org/chunked/stable/rest-api-transactional.html )將它們作為單獨的cypher語句發送。

例如(只有前3個),你會:

POST http://localhost:7474/db/data/transaction
Accept: application/json; charset=UTF-8
Content-Type: application/json

{
  "statements" : [ {
    "statement" : "MATCH (p { Date: {fromDate} }) SET p.Date = {toDate} RETURN p",
    "parameters" : {
      "props" : { "fromDate" : "9102013", "toDate": "9/10/2013" }
    }
  }, {
    "statement" : "MATCH (p { Date: {fromDate} }) SET p.Date = {toDate} RETURN p",
    "parameters" : {
      "props" : { "fromDate" : "9302013", "toDate": "9/30/2013" }
    }
  }, {
    "statement" : "MATCH (p { Date: {fromDate} }) SET p.Date = {toDate} RETURN p",
    "parameters" : {
      "props" : { "fromDate" : "1092013", "toDate": "1/0/2013" }
    }
  } ]
}

請注意,我還添加了參數使用,因為它更快。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM