1.11 REMOVE
REMOVE语句用于删除图元素的属性和标签。对于删除节点和关系,参见DELETE小节
1.11.1 删除一个属性
Neo4j不允许属性存储空值null。如果属性的值不存在,那么节点或者关系中的属性将被删除。这也可以通过REMOVE来删除。
MATCH (p { name: 'Michael Douglas' }) REMOVE p. bornIn RETURN p |
1.11.2 删除节点的一个标签
MATCH (n { name: 'Peter' }) REMOVE n:German RETURN n |
1.11.3 删除节点的多个标签
MATCH (n { name: 'Peter' }) REMOVE n:German:Swedish RETURN n |
1.12 ORDER BY
ORDER BY是紧跟RETURN或者WITH的子句,它指定了输出的结果应该如何排序。
1.12.1 根据属性对节点进行排序
ORDER BY用于对输出进行排序。
MATCH (n) RETURN n.name ORDER BY n.name |
返回了根据节点name属性进行排序的节点序列。
1.12.2 根据多个属性对节点进行排序
ORDER BY语句中支持根据多个属性对节点进行排序。Cypher将先根据第一个变量进行排序,对于相等的值,然后再检查 ORDER BY中的下一个属性值,依次类推。
MATCH (n) RETURN n.born, n.name ORDER BY n.born, n.name |
1.12.3 节点降序排列
在排序的变量后面添加DESC[ENDING],Cypher将以逆序(即降序)对输出进行排序。
MATCH (n) RETURN n ORDER BY n.name DESC |
1.12.4 空值的排序
当结果集中包含null值时,对于升序排列,null总是在结果集的末尾。而对于降序排序,null值总是排在最前面。
MATCH (n) RETURN n.title, n ORDER BY n.title |
本例中返回了以length属性排序的节点,没有length属性的节点排在最后。
1.13 LIMIT
LIMIT限制输出的行数。
1.13.1 返回开始部分
从最开始返回结果的一个子集,语法如下:
MATCH (n) RETURN n ORDER BY n.name LIMIT 3 |
1.14 SKIP
SKIP定义了从哪行开始返回结果。
1.14.1 跳过前三
从第四个开始返回结果的一个子集。如下:
MATCH (n) RETURN n ORDER BY n.name SKIP 3 |
1.14.2 返回中间两个
从中间某个位置开始返回结果的字节。可以实现分页
MATCH (n) RETURN n ORDER BY n.name SKIP 1 LIMIT 2 |
返回了中间的两个节点。
1.14.3 跳过表达式的值加1
Skip接受任意结果为正整数的值,只要它不引用其他外部变量。
MATCH (n) RETURN n ORDER BY n.name SKIP toInt(3*rand())+ 1 |