我正在尝试缩小代码长度,但是我需要几个这种类型的数据实例:
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值”最多为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
执行此操作的正确方法是什么?
编辑:在尝试建立答案的基础上,我想补充一下,对于我的情况,在for循环内调用t.iterate()
可以得到预期的结果,但是如果在外部调用则不能这样循环,如下所述。
答案 0 :(得分:0)
您发现的示例在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()