用于添加边缘的gremlin服务器查询
gremlin server query for adding edge
我正在玩titan db(cassandra和es后端)。我通过nodejs中的gremlin javascript模块向gremlin服务器发送查询。我已经能够使用graph.traversal().V().has(idKey,idVal).tryNext().orElseGet{ graph.addVertex(T.label,"product","product_id",991);graph.tx().commit();
在titan中编写getOrInsert顶点
但我面临的问题是如何在两个顶点之间添加边。一般来说,我们在gremlin中所做的是
a=graph.traversal().addVertex(...some properties);
b=graph.traversal().addVertex(...some properties);
a.addEdge("someEdgeType",b);
我发现有一个grex模块很有帮助,因为它支持
// JavaScript
var query = gremlin();
var bob = query.var(g.addVertex({ name: 'Bob' }));
var alice = query.var(g.addVertex({ name: 'Alice' }));
query(g.addEdge(bob, alice, 'likes', { since: 'now' }));
我不能使用grex模块(它支持2.0),因为我使用的是gremlin 3.0.1,编写查询的格式也发生了变化(我想!)。
我的用例:我应该能够将gremlin查询发送到远程gremlin服务器。
是否存在其他类似grex的模块,以使查询创建更容易?我应该如何通过查询gremlin服务器来创建边缘?
首先,执行graph.traversal()
不是一个好的模式。创建一次GraphTraversalSource
并重复使用:
gremlin> graph = TinkerGraph.open()
==>tinkergraph[vertices:0 edges:0]
gremlin> g = graph.traversal()
==>graphtraversalsource[tinkergraph[vertices:0 edges:0], standard]
至于您的问题,您的"getOrInsert"代码行返回一个Vertex
,所以只需使用它来创建您的Edge
:
gremlin> v1 = g.V().has('k',1).tryNext().orElseGet{graph.addVertex('k',1)}
==>v[0]
gremlin> v1.addEdge('self',v1)
==>e[2][0-self->0]
相关文章:
- 正在查询服务器中的文件
- 分析服务器上的查询AND运算符
- 使用useMasterKey参数分析每个服务器查询
- 用于添加边缘的gremlin服务器查询
- POST encodeURI查询字符串内部服务器错误 500
- 我的 Meteor 项目如何通过服务器端 MongoDB/集合查找查询可靠地显示信息
- web2py服务器返回错误,但已提交查询
- OrientDB:在服务器端函数中访问查询结果数据
- ember-data - store.find('model') 总是查询服务器
- 获取要发送到服务器以导出为报表的数据表当前绘制查询字符串
- 为什么$elemMatch MongoDB查询在具有扩展RexExp EJSON类型的客户端和服务器上的行为不同
- 如何使用 ajax 调用带有参数(对象)的服务器端方法,其中 url 具有查询参数
- Breeze 查询不提取检查 sql 服务器表中日期列的记录
- Ajax/Jquery - 在从服务器返回数据时调用 javascript 函数/使用 ajax 执行并行 SQL 查询
- 如何使用本机节点驱动程序在节点服务器上执行mongo查询字符串
- Meteor查询在服务器和本地环境中的作用不同
- 当选择包含*时,使用ADO到Oracle服务器的查询失败未指定错误
- 带有查询参数的节点js-app.get方法-内部服务器错误
- 如何使用Firebase根据查询结果执行服务器验证
- 有人尝试过用CouchDB更改和基准测试不同的javascript查询服务器吗