Я использую gremlin- python для подключения к gremlin-серверу, и я пытаюсь создать запрос постепенно, но я застреваю. У меня есть начальная часть моего запроса, например:
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?