如何在Node.js中遍历GraphTraversal对象?

时间:2019-05-17 11:21:49

标签: node.js gremlin

在Gremlin控制台中,我可以使用valueMap()打印顶点的所有属性,从而产生多行输出。但是如何在Node.js中对其进行迭代?

克里姆林宫查询:

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 :(得分:0)

toList()只是一个终止步骤。 valueMap()只是另一个图形遍历步骤。您需要一个终结器来遍历图,以便Gremlin知道如何迭代结果。只需在toList()之后添加valueMap()

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