【发布时间】:2017-02-20 14:12:39
【问题描述】:
我正在尝试与 Gremlin 交手。彻底阅读了文档后,我似乎仍然在概念上苦苦挣扎。
我正在按照 Neo4j 文档中的模型创建一个基本的新闻源:
http://neo4j.com/docs/snapshot/cypher-cookbook-newsfeed.html
我实际上在使用 titandb,但我遵循与上图相同的原则/模式。
到目前为止,我已经创建了一个 user 顶点图,这些顶点通过 friend 边连接。
我可以添加一个新的post 顶点并通过posted 边缘将其连接到user 顶点,如下所示:
def activity = graph.addVertex(T.label, "post");
activity.property("post_id", post_id);
activity.property("time", time);
activity.property("body", body);
def g = graph.traversal();
def user = g.V().hasLabel("user").has("userid", userid).next();
user.addEdge("posted", activity, "time", time);
但是,我需要能够在单个 Gremlin 脚本中执行以下操作:
- 创建新的
post顶点,如上。 - 删除
user和任何当前连接的post顶点之间的旧posted边。但仅当当前存在帖子。 - 使用新的
posted边将新的post顶点附加到user。 - 最后,如果有之前的
post顶点,则通过next边将其附加到新添加的post顶点。最终为每个用户创建长信息流。
我一直在玩,反复试验,现在似乎有几个小时了,我似乎无法理解它。
任何帮助将不胜感激。
【问题讨论】:
标签: titan gremlin tinkerpop tinkerpop3