我正在尝试删除系统中存在超过2小时的所有关系。
每次创建关系时,我都会添加属性时间戳。
我正在尝试创建一个计划流程,删除他们创建的日期超过2小时的所有关系。
所以我正在寻找这样的东西:
*假设reportDate是mili的时间戳 * 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子句以符合我的要求?
谢谢, 射线。
答案 0 :(得分:1)
reportDate的值如何?
1447073161751
代表什么?
reportDate的数据类型是什么?
int
TOINT()
首先尝试选择节点:
MATCH (p1:C9)-[r:follow]->(p2:C9)
WHERE (r.reportDate - 1447073161751) > 7200000
RETURN p1, r, p2
Cypher毫无问题地为我工作。
以下是我尝试的示例:
字符串数据类型
的版本创建
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