我正在使用gremlin-python连接到gremlin-server,并尝试逐步构建查询,但我卡住了。我有一个初始的查询部分如下:
query = g.V().hasLabel('<some_label>')
现在我想用这个查询做多件事情,首先我只想要一个计数:
query.count().next()
现在,如果我使用
query
变量执行其他操作,计数步骤就会在遍历中进行,因此以下类似的操作不起作用:query.out('<some_edge_label>').valueMap().toList()
看文档似乎需要克隆遍历,所以我用以下内容替换了上面的内容:
query = g.V().hasLabel('<some_label>')
count_query = query.clone()
count_query.count().next()
但是,即使我克隆了query
对象,当我打印字节码时,它仍然包含count()
步骤。这是gremlin-python的预期行为吗?下面是一个完整的示例,展示每个步骤的字节码:
query = g.V().hasLabel('alabel')
print(query)
q_count = query.clone()
print(q_count.count())
print(query)
[['V'], ['hasLabel', 'alabel']]
[['V'], ['hasLabel', 'alabel'], ['count']]
[['V'], ['hasLabel', 'alabel'], ['count']]
我该如何在gremlin-python中克隆/复制遍历的开头以便重用它?