2015-11-09 14 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