在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”
谢谢阿玛迪斯
答案 0 :(得分:0)
toList()
只是一个终止步骤。 valueMap()
只是另一个图形遍历步骤。您需要一个终结器来遍历图,以便Gremlin知道如何迭代结果。只需在toList()
之后添加valueMap()
。
g.V().valueMap().toList()