Gremlin: 属性 具有静态和动态的名称
Gremlin: property name with static and dynamic
我正在尝试使用选定的属性创建一个具有静态和动态值的 属性 顶点。这里的代码:
g.V('%s').as('source')
.until(or(hasLabel('target').has('v', '1'),loops().is(10)))
.repeat(__.in())
.outE('e').as('edge')
.inV().as('u')
.select('source')
.property(single, 'v', '1')
.property(single, union(constant('p_'),select('u').id()), select('e').properties('r').value())
此查询是复制 属性 条边作为值,复制顶点的 id 作为 属性 的名称,前缀为 'p_'。副本有效,但 属性 名称无效,它仅保存前缀 'p_'.
关于这种行为有什么想法吗?我正在使用 tinkerpop 3.4.3,与 Neptune 版本相同。
谢谢!
此遍历中的 union() 步骤不会像您希望的那样 return 前缀和 属性 的串联。相反,它将 return 为 union() 中的每个项目使用一个单独的遍历器。在本例中,一个包含“p_”,一个包含 id(),一个包含“r”属性.
遗憾的是,Gremlin 没有可以为您完成此操作的字符串连接函数。请看下面:
当您使用 Neptune 时,该答案中提出的解决方案将不起作用,因为 Neptune 在遍历中不支持 lambda。不幸的是,在这种情况下,完成此操作的最佳方法可能是 return 将数据发送到您的应用程序,连接字符串,然后更新 属性.
我正在尝试使用选定的属性创建一个具有静态和动态值的 属性 顶点。这里的代码:
g.V('%s').as('source')
.until(or(hasLabel('target').has('v', '1'),loops().is(10)))
.repeat(__.in())
.outE('e').as('edge')
.inV().as('u')
.select('source')
.property(single, 'v', '1')
.property(single, union(constant('p_'),select('u').id()), select('e').properties('r').value())
此查询是复制 属性 条边作为值,复制顶点的 id 作为 属性 的名称,前缀为 'p_'。副本有效,但 属性 名称无效,它仅保存前缀 'p_'.
关于这种行为有什么想法吗?我正在使用 tinkerpop 3.4.3,与 Neptune 版本相同。
谢谢!
此遍历中的 union() 步骤不会像您希望的那样 return 前缀和 属性 的串联。相反,它将 return 为 union() 中的每个项目使用一个单独的遍历器。在本例中,一个包含“p_”,一个包含 id(),一个包含“r”属性.
遗憾的是,Gremlin 没有可以为您完成此操作的字符串连接函数。请看下面:
当您使用 Neptune 时,该答案中提出的解决方案将不起作用,因为 Neptune 在遍历中不支持 lambda。不幸的是,在这种情况下,完成此操作的最佳方法可能是 return 将数据发送到您的应用程序,连接字符串,然后更新 属性.