gremlin(二)
一、添加点和点属性
addV,添加一个点 g.addV('person') 添加一个label为person的点
g.V(1).property('name','老大')给id为一的节点添加或修改属性name
and条件,匹配,g.V('default::man::1').and(outE('gx'),values('name').is('老大儿')).valueMap() 查询有gx边且名字为老大儿的点的属性
as 给查询到的数据加上一个别名
aggregate('x') 聚合前面操作,后续可以跟聚合计算
二、by关键字
dedup(): 将结果按照 by() 调整步(modulation)来去重
cyclicPath(): 按照 by() 来过滤保留循环路径
simplePath(): 按照 by() 来过滤保留简单路径(非循环路径即成为简单路径)
sample():按照 by() 返回的value来采样
where(): 按照 by() 给出的测试条件来判断分支
groupCount(): 按照 by() 给出的结果当做分组的键(key)来计算分组的个数
group(): 根据 by() 来创建分组的键和值
order(): 将对象按照 by() 给的结果进行排序
path(): 按照 by() 给出的元素路径来获取遍历器的路径
project(): 根据 by() 提供的各种条件来映射(project)一组当前的对象(map)
select(): 根据 by() 来选择和转换路径元素(path elements)
tree(): 获取一颗按照 by() 对象的遍历树
aggregate():聚合对象到一个集合中,仅存储 by() 的传入(的条件)
store(): 存储对象到一个集合中,仅存储 by() 的传入(的条件)
三、choose分支选择
g.V().hasLabel('person').
choose(values('age').is(lte(30)),
__.in(),
__.out()).values('name')
当age>30时选择in,不大于30时选择out
coalesce选择第一个非空结果返回 g.V().hasLabel('person').coalesce(values('nickname'), values('name'))
四、constant常量值
g.V().choose(hasLabel('person'),
values('name'),
constant('inhuman'))
count,计数 g.V().count()返回查询到的点的个数
五、path
返回遍历经过的路径,g.V(1).both().both().cyclicPath(),选择环路
返回遍历经过的路径,g.V(1).both().both().simplePath() 选择非环路径
返回遍历经过的路径,g.V(1).both().emit().both().path() 选择全部路径,emit是储存中间步骤,否则只返回第二步的结果,如不加emit 1->2->3->4,加了emit 1->2->3->4,1->2->3
fold用于将一个trasvel转化为一个list,便于计算,unfold是反向操作