1

我试图缩小我的代码,但我需要这种类型的数据的几个实例:

g.addV('A').property('a-type','thing-x').property('a-value',1).next()
g.addV('A').property('a-type','thing-x').property('a-value',2).next()
...   
g.addV('A').property('a-type','thing-x').property('a-value',n).next()

最多 'a-value' 为 n(例如 50)。

# I tried a version of a loop I found here 
# https://stackoverflow.com/questions/40907529/create-multiple-edges-having-vertex-id-number-0-to-49
# 
g.inject((0..<50).toArray()).as('i').addV('a-value',select('i')).iterate()

但我收到一个错误:

g.inject((0..<50).toArray()).as('i').addV('a-value',select('i')).iterate()
             ^
    SyntaxError: invalid syntax

这样做的正确方法是什么?

编辑:在尝试建立答案之后,我只想为我的情况添加一点,t.iterate()在 for 循环中调用会给出预期的结果,但如果在循环之外调用它,则不是这样,如下所述。

4

1 回答 1

2

您找到的示例在 Gremlin 控制台中使用,因此使用了 Groovy 构造。在 Python 中,您可以执行以下操作:

for i in range(1,51):
    g.addV('test').property('mykey',i).iterate()

但是,这将一次添加一个顶点,因此最好以类似于此的方式小批量编写它们。

t = g.addV('test').property('mykey',1)
for i in range(2,51):
    t.addV('test').property('mykey',i)
t.iterate()
于 2019-04-08T21:54:05.593 回答