【问题标题】:Multiple if else in gremlin querygremlin 查询中的多个 if else
【发布时间】:2020-11-25 17:19:42
【问题描述】:

数据模型如下:

g.addV('A').property('property1',0).property('input','two').next()
g.addV('B').property('property2',0).next()
g.V().has('property1',0).as('fromV').V().has('property2',0).as('toV').addE('AB').from('fromV').to('toV').iterate()

首先,需要检查节点A和B是否通过AB关系连接。如果是,则根据给定的输入更改节点 A 的属性值。

属性值条件:

if input="one" then 1
else if input="two" then 2
else if input="three" then 3
else 0

尝试了以下查询:

g.V().has('property1',0).where(outE('AB').inV('B')).property('property1',choose(values('input').is(eq('one')),1,choose(values('input').is(eq('two')),2,choose(values('input').is(eq('three')),3,0))))

错误:

No signature of method: static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.choose() is applicable for argument types: (org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal...) values: [[PropertiesStep([input_currency],value), IsStep(eq(Local))], ...]
Possible solutions: choose(java.util.function.Function), choose(org.apache.tinkerpop.gremlin.process.traversal.Traversal), choose(java.util.function.Predicate, org.apache.tinkerpop.gremlin.process.traversal.Traversal), choose(org.apache.tinkerpop.gremlin.process.traversal.Traversal, org.apache.tinkerpop.gremlin.process.traversal.Traversal), choose(java.util.function.Predicate, org.apache.tinkerpop.gremlin.process.traversal.Traversal, org.apache.tinkerpop.gremlin.process.traversal.Traversal), choose(org.apache.tinkerpop.gremlin.process.traversal.Traversal, org.apache.tinkerpop.gremlin.process.traversal.Traversal, org.apache.tinkerpop.gremlin.process.traversal.Traversal)
Type ':help' or ':h' for help.
Display stack trace? [yN]

【问题讨论】:

    标签: graph gremlin tinkerpop janusgraph


    【解决方案1】:

    使用选项解决了这个问题。 查询:

    g.V().has('property1',0).where(outE('AB').inV('B')).property('property1',choose(values('input')).option('one',1).option('two',2).option('three',3))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-27
      • 2013-05-22
      • 2015-07-06
      相关资源
      最近更新 更多