3.4.1 断言函数
断言(Predicate)函数是对给定的输入返回true或者false的布尔函数,它们主要用于查询WHERE的部分过滤子图。Predicate图例如图3-23所示。
图3-23 Predicate图例
3.4.1.1 all()
判断是否一个断言适用于列表中的所有元素。
语法:all(variable IN list WHERE predicate)
参数:
● list:返回列表的表达式。
● variable:用于断言中的变量。
● predicate:用于测试列表中所有元素的断言。
查询:
返回路径中的所有节点都有一个至少大于30的age属性。
结果:
3.4.1.2 any()
判断是否一个断言至少适用于列表中的一个元素。
语法:any(variable IN list WHERE predicate)
参数:
● list:返回列表的表达式。
● variable:用于断言中的变量。
● predicate:用于测试列表中所有元素的断言。
查询:
返回路径中的所有节点的array数组属性中至少有一个值为one。
结果:
3.4.1.3 none()
如果断言不适用于列表中的任何元素,则返回true。
语法:none(variable IN list WHERE predicate)
参数:
● list:返回列表的表达式。
● variable:用于断言中的变量。
● predicate:用于测试列表中所有元素的断言。
查询:
返回的路径中没有节点的age属性值为25。
结果:
3.4.1.4 single()
如果断言只适用于列表中的某一个元素,则返回true。
语法:single(variable IN list WHERE predicate)
参数:
● list:返回列表的表达式。
● variable:用于断言中的变量。
● predicate:用于测试列表中所有元素的断言。
查询:
每条返回的路径中只有一个节点的eyes属性值为blue。
结果:
3.4.1.5 exists()
如果数据库中存在该模式或者节点中存在该属性时,就返回true。
语法:exists(pattern-or-property)
参数:
● pattern-or-property:模式或者属性(以variable.prop的形式)。
查询:
本查询返回了所有节点的name属性和一个表示是否已婚的true/false值。
结果: