WHERE子句
CQL_MATCH命令中提供了WHERE子句来过滤MATCH查询的结果。
简单WHERE子句语法
WHERE <condition>
复杂WHERE子句语法
WHERE <condition> <boolean-operator> <condition>
condition语法
<property-name> <comparison-operator> <value>
布尔运算符:
1.AND 2.OR 3.NOT 4.XOR
比较运算符:
1.= 2.<> 3.< 4.> 5.<= 6.>=
简单WHERE子句
此前创造过四个标签名同为university的节点ZJU,PKU,ECUST,SJTU,通过MATCH-RETURN命令查看四个节点的所有属性:
我们通过WHERE子句寻找location为Shanghai的university节点:
于是得到了两个location为Shanghai的节点SJTU和ECUST。
复杂WHERE子句
我们通过WHERE子句寻找location为Shanghai,name为ECUST的节点:
最终得到唯一符合寻找条件的节点ECUST。
我们还可以通过OR运算符寻找location为Shanghai或Beijing的节点:
最终得到三个符合条件的节点PKU,SJTU,ECUST。
使用WHERE子句创建关系
在Neo4J CQL中,我们可以以不同的方式创建拖曳节点之间的关系。
1.创建两个现有节点之间的关系。
2.一次创建两个节点和它们之间的关系。
3.使用WHERE子句创建两个现有节点之间的关系。
语法
MATCH (<node1-label-name>:<node1-name>),(<node2-label-name>:<node2-name>)
WHERE <condition>
CREATE (<node1-label-name>)-[<relationship-label-name>:<relationship-name>
{<relationship-properties>}]->(<node2-label-name>)
我们查找所有的标签名为student的节点和标签名为university的节点:
将每一个university节点的name和每一个student节点的university相同创建关系IS_GRADUATED_FROM: