gremlin的predicate用于判断一个值是否满足一定条件,而不只是相等。还可以是大于,大于或等于,小于以及这些条件的组合。字符串类型还可以用来判断是否包含特定字符串,或以指定字符串开始或结束
1 gremlin支持的predicate
gremlin支持的predicate有以下这些:
判断等于或不等于
eq、neq
数值类型比较
lt、lte、gt、gte、inside、outside、between、within、without
inside表示在两个值之间,不包含边界值
outside表示在两个值之外,不包含边界值
between也表示在两个值之间,但是包含边界值
within表示值是否是序列中的一个。举例如下:
gremlin> inside(20,30).test(20)
==>false
gremlin> between(20,30).test(20)
==>true
gremlin> within(20,30,40,50).test(20)
==>true
gremlin> within('a', 'hello', 'b').test('hello')
==>true
字符串特定的predicate
startingWith、endingWith、containing、notStartingWith、notEndingWith、notContaining
2 predicate的组合
多个predicate可以通过and()、or()、not()组合成复杂的判断逻辑,而且支持嵌套,例如:
# 组合
gremlin> gt(20).and(lt(30)).test(24)
==>true
gremlin> gt(20).and(lt(30)).and(eq(24)).test(24)
==>true
gremlin> gt(20).and(lt(30)).or(eq(100)).test(100)
==>true
# 嵌套
gremlin> gt(20).and(lt(30).or(eq(100))).test(100)
==>true
gremlin> not(gt(20).and(lt(30).or(eq(100)))).test(100)
==>false
网友评论