调用属性后如何返回顶点

时间:2018-12-10 07:55:31

标签: azure-cosmosdb gremlin

设置完网址后,我想回到顶点以添加更多属性,该怎么做?

g.addV('Site')
.property(list, 'name', 'stackoverflow')
.properties('name')
.hasValue('stackoverflow')
.property('url', 'https://stackoverflow.com')

编辑:找到了如何用gremlin做到这一点,但不适用于cosmosdb

g.addV('Site')
.property(list, 'name', 'stackoverflow')
.properties('name')
.hasValue('stackoverflow')
.property('url', 'https://stackoverflow.com')
.next()
.element()

有人知道其他在cosmosdb上实现相同目标的方法吗?

1 个答案:

答案 0 :(得分:2)

在某种意义上,您实际上不能使用next(),因为next()正在遍历遍历并返回结果,因此您此时移出了Gremlin的API。除非您将Graph实例嵌入同一JVM中,否则从next()返回的graph元素将被“分离”并因此是不可变的。

也就是说,值得注意的是,调用property(list, 'name','stackoverflow')实际上并没有把Vertex遍历器抛在后面,因此您可以直接在其后直接插入property()调用:

g.addV('Site').
  property(list, 'name', 'stackoverflow').
  property('url', 'https://stackoverflow.com')

现在,如果我从字面上理解您的Gremlin,您会在创建一个“名称”属性,然后找到该属性并向其中添加元属性“ url”,然后询问如何返回到原始父顶点因为那时您实际上正在返回VertexProperty。好吧,首先请注意,您可以更直接地设置元属性,并避免同时调用properties()

g.addV('Site').
  property(list, 'name', 'stackoverflow', 'url', 'http://stackoverflow.com')