学习gremlin语言的目的:测试图数据,支持gremlin语句,所以必须系统学习一下!!!!
一、基础查询
g.V() 查询所有的顶点 g.V(3) 查询顶点id为3的点。字符串id的要到引号V("tarzan") g.E() 查询所有的边 g.E('S3:TinkerPop>4>>S4:Gremlin') 根据顶点查询 g.V().id() 先查询V()所有点,再id(),获取所有点的id() g.E().id()
g.V(1).label() 查询id为1 的点 类型 不能根据label查顶点label("node")报错 如果需要的话:g.V().hasLabel('node') g.V().limit(10).label() 查询点,取前10个,查出这前十个的点的类型 g.V().limit(10).properties('city') 查出这是个点的city属性值 g.V(1).properties().key() 查id为1的顶点,他包含的所有属性key g.V(1).properties().value()
二、边遍历
g.V(1).out() 查id为1顶点的out方向的点 结果就是单个点。没有边
g.V(1).in() in方向的点
g.V(1).outE() 查的是out方向的边 结果有点有边
g.V(1).inE() in方向的边
g.V(1).both()
以上都是以点开始的。基准点必须是点
g.V('javeme').out('created').out('implements').out('contains').out('supports')
// 4度out()查询
// 通过id找到“javeme”作者顶点
// 通过out()访问其创建的软件
// 继续通过out()访问软件实现的框架
// 继续通过out()访问框架包含的软件
// 继续通过out()访问软件支持的语言
三、has条件过滤
g.V().hasLabel('person') 查询所有点,并且筛选出label为person的点 g.V().hasLabel('person','software') g.V().hasId('2:marko') 筛选出id为**的点 g.V().has(label, key, value) 通过label和属性的名字和值过滤顶点和边 想要通过属性查询,你必须要有属性索引 g.V().has('age', gt(20)) eq相等 ne、neq不相等, gt大于, lt小于 gte、ge大于等于 lte、le 小于等于
四、返回结果数限制
g.V().limit(10).count() count用来计算查询结果一共有多少个点 g.V().hasLabel('person').range(0,2) range取查询结果中的前两个,和python中一样 g.V().hasLabel('person').range(0,-1) 获取所有 g.V().hasLabel('person').limit(1) limit限制支取查询结果的第一个
五、
六、
七、
八、
九、
十