Gremlin-顶点不与合并结合使用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Gremlin-顶点不与合并结合使用相关的知识,希望对你有一定的参考价值。
我是gremlin的新手,有一个非常简单的案例,需要检查以下内容:
- 如果顶点存在
- 更新属性
- 其他
- 添加具有属性的顶点
我正在为此使用Java API。
我的代码:
g.V().hasLabel("Entity").has("identifier", "123").fold()
.coalesce(
__.unfold(),
__.addV("Entity")
.property("identifier", "123")
.property("value", "A")
.property("action", "add")
)
.property("value", "A")
.property("action", "update")
.iterate();
我知道这是一个非常简单的情况,我参考了[CosmosDB Graph : "upsert" query pattern]中给出的示例>
但是它不起作用。如果该顶点不存在,则将其添加属性,但属性也会更新。
我是gremlin的新手,有一个非常简单的案例,需要检查以下内容:如果顶点存在,请更新属性,否则,请添加带有属性的顶点,为此我正在使用Java API。我的代码:g.V()....
答案
[编写Gremlin时,您需要考虑流。 V()
产生图中所有顶点的流。设想该流中的每个项目都将命中hasLabel()
和has()
过滤器配对,直到它们到达fold()
的归约步骤为止,该步骤将产生List
的顶点与过滤器标准匹配,或者如果顶点不匹配过滤器标准simple产生一个空列表,该列表成为流中的新对象。
另一答案
顶点是否存在或合并将返回现有顶点或新创建的顶点。在这两种情况下,合并后的属性设置步骤都将应用于流出的所有内容。如果只希望在合并到现有顶点后进行更改,则将其放在展开步骤之后。
以上是关于Gremlin-顶点不与合并结合使用的主要内容,如果未能解决你的问题,请参考以下文章