2015-11-09 33 views
2

我想刪除系統中存在超過2小時的所有關係。如何使用密碼進行仲裁操作(減號)

我每次創建關係時都會添加屬性時間戳。

我想創建一個計劃過程,刪除所有他們創建日期超過2小時的關係。

所以我要尋找的是這樣的:

*承擔reportDate是時間戳毫的 * 7200000 - 2小時毫的

match (p1:C9)-[r:follow]->(p2:C9) 
where (r.reportDate - 1447073161751) > 7200000 
delete r 

它沒有工作。來自Cypher的錯誤:

Don't know how to Subtract(r.reportDate,{ AUTOINT0}) `1447073161751` with `1447090476190` 

我該如何調整我的where子句以符合我的要求?

謝謝, 射線。

回答

1

reportDate上的值如何顯示?
1447073161751代表什麼?
什麼是reportDate的數據類型?

  • 如果您需要通過TOINT()

轉換爲int首先嚐試選擇節點串:

MATCH (p1:C9)-[r:follow]->(p2:C9) 
WHERE (r.reportDate - 1447073161751) > 7200000 
RETURN p1, r, p2 

這暗號工作對我來說沒有任何問題。

這裏是例子,這是我嘗試:

版本用繩子數據類型

創建

CREATE (p1:C9)-[r:follow {reportDate: "123"}]->(p2:C9) 

刪除

MATCH (p1:C9)-[r:follow]->(p2:C9) 
WHERE (TOINT(r.reportDate) - 100) > 20 
DELETE r 

檢查

MATCH (p1:C9)-[r:follow]->(p2:C9) 
WHERE (TOINT(r.reportDate) - 100) > 20 
RETURN r 

與整數數據類型,版本

創建

CREATE (p1:C9)-[r:follow {reportDate: 123}]->(p2:C9) 

刪除

MATCH (p1:C9)-[r:follow]->(p2:C9) 
WHERE (r.reportDate - 100) > 20 
DELETE r 

檢查

MATCH (p1:C9)-[r:follow]->(p2:C9) 
WHERE (r.reportDate - 100) > 20 
RETURN r 
+0

1447073161751是時間戳(長) – rayman

+0

它沒有工作:錯誤信息:不知道如何減法(r。reportDate,{AUTOINT0})'1447073161751'與'1447090476190' – rayman

+0

@rayman:我更新了我的答案。您的問題可能與reportDate的數據類型有關,因爲它不是數字。這可能是一個字符串,這就是你減去錯誤的原因。 – MicTech