我有图形数据库,它是事件和参与者的集合。
我将事件的start_time
属性存储为unix timestamp
,以便通过比较unix timestamp
更轻松地搜索即将发生的事件。
现在问题是错误的我在几个事件中将日期字符串存储为start_time
值,现在我无法将日期字符串与unix timestamp
进行比较,这就是为什么查询不返回任何事件。
如何在比较其值之前比较start_time属性的数据类型?
请指导我实现目标的正确方法..
答案 0 :(得分:3)
您可以使用toInt
函数隐式检查属性类型并与值进行比较。要将所有字符串样式start_time
转换为其数字变体:
MATCH (n)
WHERE has(n.start_time) and (toInt(n.start_time)<>n.start_time)
SET n.start_time = toInt(n.start_time)
如果有很多节点使用SKIP
和LIMIT
来处理合理的批次。
答案 1 :(得分:2)
这就是我解决这个问题的方法。
“START参加者=节点:与会者('user_id:100001195447969')MATCH(与会者) - [:friends_with] - (朋友) - [:出席] - (事件)WITH事件,与会者作为用户,计数(明确的朋友) .user_id)作为计数WHERE REPLACE(str(event.start_time),“ - ”,“”)= str(event.start_time) AND count&gt; = 1 RETURN event.start_time;“
所以现在它没有给我带有start_time的事件,比如“2014-06-05 10:00:00”。我可以比较其余事件的start_time。