Как мне пройти через объект GraphTraversal в Node.js? - PullRequest
0 голосов
/ 17 мая 2019

В консоли Gremlin я могу использовать valueMap () для печати всех свойств вершин, в результате чего выводится несколько строк.Но как я могу перебрать их в Node.js?

Gremlin:

gremlin> g.V().toList()
==>v[64]
==>v[68]
gremlin> g.V().valueMap(true)
==>{id=64, name=[Brick 1], part_number=[000001], uuid=[cb5fa832-ef75-44e7-a2b6-0a39be14d86c]}
==>{id=68, name=[Brick 2], part_number=[000001], uuid=[19c69323-7844-4260-b317-0bbec67d74d3]}

Код Node.js:

import {driver, structure} from 'gremlin';
import DriverRemoteConnection = driver.DriverRemoteConnection;
import Graph = structure.Graph;

const g = new Graph().traversal().withRemote(new DriverRemoteConnection('ws://localhost:8182/gremlin'));

console.log(g.V().toList());    <= working

Однако, используя valueMap ()вместо toList () вернет объект GraphTraversal, который я не могу обработать.Как получить фактические результаты?

GraphTraversal {
  graph: Graph {},
  traversalStrategies: TraversalStrategies { strategies: [ [RemoteStrategy] ] },
  bytecode:
   Bytecode {
     sourceInstructions: [],
     stepInstructions: [ [Array], [Array] ] },
  traversers: null,
...

Я использую пакет npm "gremlin": "^ 3.4.1"

Спасибо, Амадеус

1 Ответ

0 голосов
/ 17 мая 2019

toList() это просто завершающий шаг. valueMap() это просто еще один шаг обхода графа. Вам нужен терминатор для обхода графа, чтобы Gremlin знал, как повторить результат. Просто добавьте toList() после valueMap().

g.V().valueMap().toList()
...