gpt4 book ai didi

groovy - Gremlin-仅添加不存在的顶点

转载 作者:行者123 更新时间:2023-12-04 13:03:55 26 4
gpt4 key购买 nike

我在图的“用户”标签下添加了一个用户名数组(例如['abc','def','ghi'])。

现在,我首先要检查用户名是否已经存在(g.V().hasLabel('user').has('username','def')),然后仅在'user'标签下添加用户名属性不匹配的用户名。

另外,这可以在单个gremlin查询或groovy脚本中完成吗?

我正在使用titan图形数据库,tinkerpop3和gremlin REST服务器。

最佳答案

使用“脚本”,您始终可以将多行/命令脚本传递给服务器,以进行处理以完成所需的操作。然后使用变量,if/then语句等常规编程技术回答此问题:

t = g.V().has('person','name','bill')
t.hasNext() ? t.next() : g.addV('person').property('name','bill').next()

也许:
g.V().has('person','name','bill').tryNext().orElseGet{
g.addV('person').property('name','bill').next()}

但是这些都是令人讨厌的脚本,最终TinkerPop建议避免使用脚本和闭包,而应使用纯遍历。在单个遍历中处理“获取或创建”的一般方法是执行以下操作:
gremlin> g.V().has('person','name','bill').fold().
......1> coalesce(unfold(),
......2> addV('person').property('name','bill'))
==>v[18]

另请参阅此 StackOverflow question以获取有关upsert/“获取或创建”模式的更多信息。

关于groovy - Gremlin-仅添加不存在的顶点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46027444/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com