Graph databases Gremlin-选择一个顶点,在单个查询中创建新的顶点和边

Graph databases Gremlin-选择一个顶点,在单个查询中创建新的顶点和边,graph-databases,gremlin,tinkerpop,janusgraph,Graph Databases,Gremlin,Tinkerpop,Janusgraph,我已经创建了一个用户顶点 g.V().has('user','username','vipul').as('user') 我想用一些属性创建一个新的“组”顶点,同时用一些其他属性创建一个新的“选项”顶点 g.addV(label,'group','group_name','DC11').as('group') g.addV(label,'options','command_line_arguments','-D -n').as('options') 现在我想创建一个从用户到组的边,以及另一个

我已经创建了一个用户顶点

g.V().has('user','username','vipul').as('user')
我想用一些属性创建一个新的“组”顶点,同时用一些其他属性创建一个新的“选项”顶点

g.addV(label,'group','group_name','DC11').as('group')
g.addV(label,'options','command_line_arguments','-D -n').as('options')
现在我想创建一个从用户到组的边,以及另一个从组到选项的边

user ---> group,   group ---> options

可以组合这些查询,选择顶点,创建新顶点,然后创建新边吗?

您只需将这些步骤链接在一起:

g.V().has('user','username','vipul').as('user').
  addV('group').property('group_name','DC11').as('group').
  addE('memberOfGroup').from('user').
  addV('options').property('command_line_arguments','-D -n').
  addE('hasOptions').from('group')

请注意,我使用
属性
步骤设置属性,因为我更喜欢这种形式,但您也可以直接使用
addV
步骤添加属性。

您可以简单地将这些步骤链接在一起:

g.V().has('user','username','vipul').as('user').
  addV('group').property('group_name','DC11').as('group').
  addE('memberOfGroup').from('user').
  addV('options').property('command_line_arguments','-D -n').
  addE('hasOptions').from('group')

请注意,我使用
属性
步骤设置属性,因为我更喜欢该表单,但您也可以使用
添加v
步骤直接添加属性。

谢谢您的回答。我有一个janusgraph设置,它附带的gremlin版本是3.2.3,这个查询在其中不起作用。这种addV和addE随3.3.0提供,用于批量装载。你能推荐其他的选择吗?那太好了,你应该让TinkerPop版本与JanusGraph版本保持一致。Florian提供的语法适用于JanusGraph 0.1.1/TinkerPop 3.2.3请参见JanusGraph版本兼容性矩阵是的,它适用。编辑查询变量时出错。非常感谢JasonPlurad和Florian。高度赞赏:)谢谢你的回答。我有一个janusgraph设置,它附带的gremlin版本是3.2.3,这个查询在其中不起作用。这种addV和addE随3.3.0提供,用于批量装载。你能推荐其他的选择吗?那太好了,你应该让TinkerPop版本与JanusGraph版本保持一致。Florian提供的语法适用于JanusGraph 0.1.1/TinkerPop 3.2.3请参见JanusGraph版本兼容性矩阵是的,它适用。编辑查询变量时出错。非常感谢JasonPlurad和Florian。高度赞赏:)