yangyang12138

导航

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是反向操作


posted on 2021-01-25 22:13  杨杨09265  阅读(214)  评论(0编辑  收藏  举报