有没有一种方法可以根据不同的条件从neo4j数据库中获取数据

时间:2019-08-27 14:42:09

标签: neo4j cypher

MATCH (a:Chemical{name:'abc'})-[r:On_Reacting_With]->(b:Chemical)
WHERE r.outputtime >'20'
RETURN count(b)

与上述查询一样,我可以获取outputtime大于20的值。但是我想给用户一个功能,他/她可以在outoutime较大的情况下获取数据。 ,小于或等于一个值。我想知道如何将运算符作为参数传递给代码。

1 个答案:

答案 0 :(得分:0)

此外:使用字符串值进行时间比较将不会产生正确的结果,除非所有字符串的长度都相同(根据需要包括前导零字符)。

您可以传递operator parameter并使用CASE子句。例如:

MATCH (a:Chemical{name:'abc'})-[r:On_Reacting_With]->(b:Chemical)
WHERE
  CASE $operator
    WHEN '<' THEN r.outputtime < '20'
    WHEN '>' THEN r.outputtime > '20'
    ELSE r.outputtime = '20'
  END
RETURN COUNT(b)