2

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 で再利用できるように、トラバーサルの開始を複製/コピーするにはどうすればよいですか?

4

2 に答える 2