使用gremlin-javascript,我要执行“不存在时添加”交易,例如:
g.V()
.hasLabel('account').has('uid', '1')
.fold()
.coalesce(
g.V().unfold(),
g.V().addV('account').property('uid', '1')
)
我该如何表达这种查询?
答案 0 :(得分:1)
我假设您已经在其他地方看到过这种模式,也许已经在Gremlin Console中进行了演示。那是Gremlin Groovy,Gremlin是Gremlin是Gremlin,无论您使用哪种编程语言。除了一些小的惯用差异外,Gremlin的大多数变体彼此相同。对于Javascript和Gremlin的这一特定方面,您所问的Gremlin与Groovy没什么不同:
g.V().
hasLabel('account').has('uid', '1').
fold().
coalesce(unfold(),
addV('account').property('uid', '1'))
请注意,anonymous fashion中调用了unfold()
或addV()
。只需按照here中所述从__
导入它们即可。
答案 1 :(得分:0)
更明确地说:
const __ = gremlin.process.statics;
g.V()
.hasLabel('account').has('uid', '1')
.fold()
.coalesce(
__.unfold(),
__.addV('account').property('uid', '1')
)