【问题标题】:Add a HashMap of Properties in Tinkerpop在 Tinkerpop 中添加属性的 HashMap
【发布时间】:2020-03-09 14:48:16
【问题描述】:

例如,我有一个属性图:

map[0] = {
    ("name";"lux");
    ("lang";"german")
} 
map[1]= {
    ("name";"lux")
}

如您所见,map[1] 没有属性“lang”。现在我想添加一个没有硬编码键的顶点。

有没有一种方法可以在一个语句中执行此操作而无需循环映射并逐个添加每个属性。

类似:

Graph.addV("label").property(T.id, getID()).property(map,key,value);

【问题讨论】:

    标签: java gremlin vertex tinkerpop amazon-neptune


    【解决方案1】:

    我使用基本的 Gremlin Console 和 TinkerGraph 来制作这个例子,但是用 Gremlin Java 表达应该没问题。

    nodes = [
        ["name": "Kim",    "breed": "Beagle"],
        ["name": "Max",    "breed": "Mixed"],
        ["name": "Toby",   "breed": "Golden Retriever"]]    
    
    gremlin> g.inject(nodes).unfold().as("nodes").
    ......1>   addV("test").as("new_node").
    ......2>   sideEffect(select('nodes').unfold().as('kv').
    ......3>              select('new_node').
    ......4>              property( select('kv').by(Column.keys),
    ......5>                        select('kv').by(Column.values))).
    ......6>          id().toList()    
    ==>9
    ==>12
    ==>15               
    
    gremlin> g.V().valueMap().with(WithOptions.tokens)
    ==>[id:9,label:test,name:[Kim],breed:[Beagle]]
    ==>[id:12,label:test,name:[Max],breed:[Mixed]]
    ==>[id:15,label:test,name:[Toby],breed:[Golden Retriever]]   
    

    【讨论】:

      猜你喜欢
      • 2017-04-25
      • 1970-01-01
      • 2016-12-01
      • 2020-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多