【发布时间】:2021-04-23 11:05:00
【问题描述】:
我有一个 Gremlin 顶点,它具有设置值属性 emails 和 phones。作为我的更新逻辑的一部分,我正在尝试删除并重新创建这些属性:
String key = ThreadLocalRandom.current().nextInt()
def dropped = vtx.as(key).properties('emails', 'phones').drop().<Vertex>select(key)
我的期望是顶点将被as标记,然后我遍历属性并删除它们,然后使用select返回顶点进行进一步处理。但是,执行此操作总是会导致空遍历。
我已经能够让遍历返回一个结果,而不是说
def dropped = vtx.sideEffect(__.properties('emails', 'phones').drop())
但我想确保在继续之前严格删除这些属性,然后我会继续重新插入它们。
为什么原始遍历的行为不像我预期的那样?对于sideEffect 版本,是否需要添加barrier() 以确保正确性,如果需要,是否足够?
【问题讨论】:
-
String key = ... nextInt ()可以吗? -
@daggett 它在 Groovy 中用于分配给 String。
标签: java groovy gremlin tinkerpop3