1 vertex、edge、property的创建和更新
1.1 语法
addV(String)
addE(String)
property(Object, Object, Object…)
from(String)
from(Traversal)
from(Vertex)
to(String)
to(Traversal)
to(Vertex)
1.2 实例说明
创建一个新的vertex,每一个vertex有且只有一个label,addV()没有指定label时,系统自动创建的label值为vertex
gremlin> g.addV()
==>v[4296]
# 系统自动创建的label值为vertex
gremlin> g.V(4296).label()
==>vertex
创建新的vertex时,我们都会指定label,如下创建一个label值为Person的vertex
gremlin> g.addV('Person')
==>v[4264]
创建vertex时,可以同时为vertex添加property
gremlin> g.addV('City').property('name', 'shenzhen')
==>v[12432]
也可以为已经存在的vertex新增property或修改property的值
gremlin> g.V(4264).property('name', '张三').property('age', 48)
==>v[4264]
# 将age的值改为18
gremlin> g.V(4264).property('age', 18)
==>v[4264]
gremlin> g.V(4264).property('age', 18).elementMap()
==>[id:4264,label:Person,name:张三,age:18]
创建新的edge, 创建edge时必须指定起始vertex,分别通过from()和to()指定
gremlin> g.V(4264).as('person').V(12432).as('city').addE('living').from('person').to('city').property('reason','喜欢')
==>e[1zk-39c-3yt-3bc][4264-living->12432]
2 vertex、edge、property的删除
2.1 语法
drop()
2.2 实例说明
删除指定的property
gremlin> g.V(4264).properties('age').drop()
# 已经没有age property了
gremlin> g.V(4264).valueMap()
==>[name:[张三]]
删除edge和vertex,删除vertex时,同时会删除与该vertex关联的所有edge
gremlin> g.E('1zk-39c-3yt-3bc').drop()
gremlin> g.V(4264).drop()
3 vertex、edge、property的信息获取
3.1 语法
V()
E()
id()
label()
properties(String...)
key()
value()
values(String...)
valueMap(String...)
elementMap(String...)
3.2 实例说明
# 所有的vertex
gremlin> g.V()
# 所有的edge
gremlin> g.E()
# 根据id获取vertex和edge,可以同时提供一个或多个id
gremlin> g.V(4264, 12432)
gremlin> g.E('1zk-39c-3yt-3bc')
# 获取vertex或edge的id和label
gremlin> g.V(4264).id()
gremlin> g.V(4264).label()
gremlin> g.E('1zk-39c-3yt-3bc').id()
gremlin> g.E('1zk-39c-3yt-3bc').label()
# 获取vertex或edge的property
# 所有的property
gremlin> g.V(4264).properties()
gremlin> g.E('1zk-39c-3yt-3bc').properties()
# 指定的property
gremlin> g.V(4264).properties('name', 'age')
# 获取vertex或edge的property key和property value
gremlin> g.V(4264).properties().key()
==>name
==>age
gremlin> g.V(4264).values()
==>张三
==>20
gremlin> g.V(4264).values('name')
==>张三
gremlin> g.V(4264).properties().value()
==>张三
==>20
gremlin> g.V(4264).properties('name').value()
==>张三
# vertex的所有property key/value 值对
gremlin> g.V(4264).valueMap()
==>[name:[张三],age:[20]]
gremlin> g.V(4264).valueMap('age')
==>[age:[20]]
# 上述方式返回的属性值是一个列表,可以把它展开
gremlin> g.V(4264).valueMap('age').by(unfold())
==>[age:20]
# 除了返回元素的属性,还可以返回id和label
# 同时返回id和label
gremlin> g.V(4264).valueMap(true, 'age').by(unfold())
==>[age:20, id:4264,label:Person]
# 下面也会同时返回id和label
gremlin> g.V(4264).valueMap('age').by(unfold())..with(WithOptions.tokens)
==>[age:20, id:4264,label:Person]
# 只返回id,不返回label
gremlin> g.V(4264).valueMap('age').by(unfold())..with(WithOptions.tokens, WithOptions.ids)
==>[age:20, id:4264]
# 不返回id,只返回label
gremlin> g.V(4264).valueMap('age').by(unfold())..with(WithOptions.tokens, WithOptions.labels)
==>[age:20, label:Person]
# propertyMap与valueMap功能一样,不过同时会输出vertex 的vertex,且不能通过with返回id和label property(vertex的property可以有自己的property)
gremlin> g.V(4264).propertyMap()
# elementMap不仅会输出property的key/value值对,同时会输出id和label值,且一定会返回id和label
gremlin> g.V(4264).elementMap()
==>[id:4160,label:Person,name:张三,age:20]
网友评论